2014-04-10 16 views
1

我需要的結果每月後添加行總計,如:如何在一些結果後添加總行?

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?

+1

http://dev.mysql.com/doc/refman/5.0/en/group-by-modifiers.html –

回答

0

您可以使用GROUP BY查詢與彙總:

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 

請參閱小提琴here

相關問題