繁体   English   中英

在某些结果后如何添加总行数?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM