如何在我的sql中添加总计作为最后一行?

ad2*_*387 5 mysql sql sql-server

我正在尝试显示一行"Total",它将执行Count列的总和.以下代码将包含两列,Environment和Count.

select 
case 
when env is null THEN 'Unknown' 
else env
end,
count(*) as Count
from env_table
group by env
order by env
/
Run Code Online (Sandbox Code Playgroud)

输出我想:

Windows 200

Linux 120

总计320

正如您在上面所看到的,我想要做的是在末尾添加一个名为"Total"的行,它基本上会执行SUM(count(*)).这样做的正确语法是什么?谢谢!

egg*_*yal 18

使用WITH ROLLUP修饰符GROUP BY:

SELECT   IFNULL(env, 'Unknown'),
         COUNT(*) AS Count
FROM     env_table
GROUP BY env WITH ROLLUP
ORDER BY env
Run Code Online (Sandbox Code Playgroud)

  • Rollup 正是我一直在寻找的。现在唯一的问题是该行被列为“未知”。我怎样才能做到这个“总计”?谢谢你的帮助! (5认同)

Kev*_*lia 5

也许是这样的吗?

SELECT   IFNULL(env, 'Unknown'),
         COUNT(*) AS Count
FROM env_table
GROUP BY env
ORDER BY env
UNION ALL
SELECT   null,
         Count(*)
FROM env_table
Run Code Online (Sandbox Code Playgroud)