【发布时间】:2014-05-30 07:55:35
【问题描述】:
在mysql中,我需要按年/月顺序排列结果:
Month Mod1 Mod2 Mod3
Jan/2013 5 4 2
Jan/2013 1 5 3
Total 6 9 5
Feb/2013 6 3 2
Feb/2013 2 1 4
Total 8 4 6
Mar/2014 6 3 2
Mar/2014 2 1 4
Total 8 4 6
按年/月顺序排列应该是:
Month Mod1 Mod2 Mod3
Mar/2014 6 3 2
Mar/2014 2 1 4
Total 8 4 6
Feb/2013 6 3 2
Feb/2013 2 1 4
Total 8 4 6
Jan/2013 5 4 2
Jan/2013 1 5 3
Total 6 9 5
查询是:
SELECT
month,
year,
SUM(IF(mod = 1, 1, 0)) AS mod1,
SUM(IF(mod = 2, 1, 0)) AS mod2,
SUM(IF(mod = 3, 1, 0)) AS mod3
FROM
DW_RM_Log
WHERE
...
GROUP BY
year, month
WITH ROLLUP
HAVING year IS NOT NULL AND month IS NOT NULL
我不能只在末尾插入 ORDER BY 年月 DESC,因为我收到以下错误:'SQLSTATE[HY000]: 一般错误:1221 CUBE/ROLLUP 和 ORDER BY 的使用不正确'。有什么建议吗?
【问题讨论】: