如何在sql中垂直获取列总数
我已经得到了水平方向的总数,我想得到最后一行的蓝色,我使用了这个查询如何在sql中垂直获取列总数,sql,sql-server,sql-server-2014,Sql,Sql Server,Sql Server 2014,我已经得到了水平方向的总数,我想得到最后一行的蓝色,我使用了这个查询 SELECT DepartmentName, SUM(CASE WHEN Risk = 'High' THEN 1 ELSE 0 END) High, SUM(CASE WHEN Risk = 'Medium' THEN 1 ELSE 0 END) Medium, SUM(CASE WHEN Risk = 'Low' THEN 1 ELSE 0 END) Low, SUM(CASE W
SELECT
DepartmentName,
SUM(CASE WHEN Risk = 'High' THEN 1 ELSE 0 END) High,
SUM(CASE WHEN Risk = 'Medium' THEN 1 ELSE 0 END) Medium,
SUM(CASE WHEN Risk = 'Low' THEN 1 ELSE 0 END) Low,
SUM(CASE WHEN Risk = 'High' THEN 1 ELSE 0 END)
+ SUM(CASE WHEN Risk = 'Medium' THEN 1 ELSE 0 END)
+ SUM(CASE WHEN Risk = 'Low' THEN 1 ELSE 0 END) Total
FROM
TableName
GROUP BY
DepartmentName
如何获取最后一行?这可以通过
通过使用
汇总
SELECT
COALESCE(DepartmentName, 'Total') DepartmentName,
SUM(CASE WHEN Risk = 'High' THEN 1 ELSE 0 END) High,
SUM(CASE WHEN Risk = 'Medium' THEN 1 ELSE 0 END) Medium,
SUM(CASE WHEN Risk = 'Low' THEN 1 ELSE 0 END) Low,
SUM(CASE WHEN Risk IN ('High', 'Medium', 'Low') THEN 1 ELSE 0 END) Total
FROM table
GROUP BY DepartmentName with ROLLUP
我能想到的最简单的
select Department, High, Medium, Low, Total from MY_TABLE
union all
select 'Total', sum(High), sum(Medium), sum(Low), sum(Total) from MY_TABLE
您使用的是什么版本的SQL?SQL server2014@KalpeshKoli-如果您访问该文档链接,请另外注意-空括号()指定一个总计组,该组对查询中指定的所有组求和。
select Department, High, Medium, Low, Total from MY_TABLE
union all
select 'Total', sum(High), sum(Medium), sum(Low), sum(Total) from MY_TABLE