MySQLでのROLLUPの代替方法

1165 ワード

今日MySQLからデータを抽出して、ROLLUP統計を使った後に、データの左の列の中でプロジェクトの名称を参加したいと思って、SQLを使います
SELECT (CASE WHEN ISNULL(PLAYERNO) THEN PLAYERNO='TOTAL' ELSE PLAYERNO END) AS PLAYERNO,SUM(AMOUNT) FROM penalties
GROUP BY PLAYERNO WITH ROLLUP

 結果は次のとおりです.
このように
+----------+-------------+| PLAYERNO | SUM(AMOUNT) |+----------+-------------+|        6   |      100.00 ||        8   |        25.00 ||       27  |      175.00 ||       44  |      130.00 ||      104 |        50.00 ||     NULL|      480.00 |+----------+-------------+6 rows in set, 1 warning (0.00 sec)
 
空の値として表示され、次のように変更されます.
SELECT PLAYERNO,SUM(AMOUNT) FROM penalties
GROUP BY PLAYERNO
UNION
SELECT 'TOTAL',SUM(AMOUNT)
FROM penalties

 
結果を表示:
+----------+-------------+| PLAYERNO | SUM(AMOUNT) |+----------+-------------+| 6          |      100.00 || 8          |        25.00 || 27        |      175.00 || 44        |      130.00 || 104      |        50.00 || TOTAL  |      480.00 |+----------+-------------+6 rows in set (0.00 sec)
表示できてもROLLUPの簡潔さを失って、もっと良い方法はありませんか?