Mysql
 sql >> Base de données >  >> RDS >> Mysql

Somme des lignes de différentes conditions dans Mysql

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