[英]How can I add total row after some results?
我需要在每个月的搜索结果后添加总计行,例如:
Month ID Mod1 Mod2 Mod3
2014/1 1 5 4 2
2014/1 2 1 5 3
Total 6 9 5
2014/2 3 6 3 2
2014/2 4 2 1 4
Total 8 4 6
这是我的查询,没有总计行:
SELECT
id_user,
month,
year,
SUM(IF(mod = 1, 1, 0)) AS mod_1,
SUM(IF(mod = 2, 1, 0)) AS mod_2,
SUM(IF(mod = 3, 1, 0)) AS mod_3
FROM
DW_RM_Log
WHERE
year = 2014
GROUP BY
year, month, id_user
ORDER BY
year, month
如何在MySQL中执行此操作?
您可以将GROUP BY查询与ROLLUPS结合使用:
SELECT
CASE WHEN id_user IS NOT NULL THEN CONCAT(`year`, '/', `Month`)
ELSE 'Total' END AS `Year_Month`,
id_user,
SUM(IF(`mod` = 1, 1, 0)) AS mod_1,
SUM(IF(`mod` = 2, 1, 0)) AS mod_2,
SUM(IF(`mod` = 3, 1, 0)) AS mod_3
FROM
DW_RM_Log
WHERE
`year` = 2014
GROUP BY
`year`, `month`, id_user
WITH ROLLUP
HAVING `year` IS NOT NULL AND `month` IS NOT NULL
请看这里的小提琴。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.