如何在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