[英]How do I add a total as the last row in my sql?
我正在尝试显示“总计”行,该行将做“计数”列的总和。 以下代码将包含两列,即“环境”和“计数”。
select
case
when env is null THEN 'Unknown'
else env
end,
count(*) as Count
from env_table
group by env
order by env
/
我想要的输出:
Windows 200
Linux 120
总计320
正如您在上面看到的,我想做的是在末尾添加一行称为“总计”的行,该行实际上将执行SUM(count(*))。 正确的语法是什么? 谢谢!
使用WITH ROLLUP
修饰符对GROUP BY
:
SELECT IFNULL(env, 'Unknown'),
COUNT(*) AS Count
FROM env_table
GROUP BY env WITH ROLLUP
ORDER BY env
也许是这样的吗?
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.