[英]How do I add a total as the last row in my sql?
I'm trying to display a row, 'Total', that will do a sum of the Count column. 我正在尝试显示“总计”行,该行将做“计数”列的总和。 The following code will have two columns, Environment and Count. 以下代码将包含两列,即“环境”和“计数”。
select
case
when env is null THEN 'Unknown'
else env
end,
count(*) as Count
from env_table
group by env
order by env
/
Output I would like: 我想要的输出:
Windows 200 Windows 200
Linux 120 Linux 120
Total 320 总计320
As you can see above, what I would like to do is add a row called "Total" at the end that would essentially do a SUM(count(*)). 正如您在上面看到的,我想做的是在末尾添加一行称为“总计”的行,该行实际上将执行SUM(count(*))。 What is the proper syntax to do this? 正确的语法是什么? Thanks! 谢谢!
Use the WITH ROLLUP
modifier to GROUP BY
: 使用WITH ROLLUP
修饰符对GROUP BY
:
SELECT IFNULL(env, 'Unknown'),
COUNT(*) AS Count
FROM env_table
GROUP BY env WITH ROLLUP
ORDER BY env
Maybe something like this? 也许是这样的吗?
SELECT IFNULL(env, 'Unknown'),
COUNT(*) AS Count
FROM env_table
GROUP BY env
ORDER BY env
UNION ALL
SELECT null,
Count(*)
FROM env_table
SELECT env, count
FROM (SELECT CASE WHEN env is null THEN 'Unknown' ELSE env END env,
count(*) count
FROM env_table
GROUP BY env
ORDER BY env)
UNION ALL
SELECT 'Total' env,
count(*) count
FROM env_table
SELECT COALESCE(env, 'Total') AS Description,
COUNT(*) AS Count
FROM env_table
GROUP BY env WITH ROLLUP
ORDER BY env
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.