Vous pouvez ajouter un WITH ROLLUP
clause à votre GROUP BY
condition comme celle-ci :
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
Cela donnerait un ensemble de résultats comme :
Status Small Medium Large
OK 1 2 1
BAD 2 1 0
[NULL] 3 3 1
Vous auriez besoin de comprendre le comportement qu'il n'y aurait pas de Total
valeur dans la colonne Statut. Au lieu de cela, la colonne Statut aurait une valeur NULL indiquant que c'est là que le cumul est effectué.
Pour plus d'informations, vous pouvez lire la documentation ici :http ://dev.mysql.com/doc/refman/5.6/en/group-by-modifiers.html