Можете да добавите WITH ROLLUP
клауза към вашия GROUP BY
състояние като това:
SELECT
CASE WHEN CONDITION=1 THEN 'OK' ELSE 'BAD' END AS Status,
SUM (CASE WHEN SIZE=10 THEN 1 ELSE 0 END) AS Small,
SUM (CASE WHEN SIZE=20 THEN 1 ELSE 0 END) AS Medium,
SUM (CASE WHEN SIZE=30 THEN 1 ELSE 0 END) AS Large,
FROM mytable
GROUP BY Status WITH ROLLUP
Това ще доведе до набор от резултати като:
Status Small Medium Large
OK 1 2 1
BAD 2 1 0
[NULL] 3 3 1
Ще трябва да разберете поведението, че няма да има Total
стойност в колоната Състояние. Вместо това колоната „Състояние“ ще има стойност NULL, което показва, че това е мястото, където се прави сборът.
За повече информация можете да прочетете документацията тук:http ://dev.mysql.com/doc/refman/5.6/en/group-by-modifiers.html