Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Summieren Sie Zeilen aus verschiedenen Bedingungen in Mysql

Sie können ein WITH ROLLUP hinzufügen -Klausel zu Ihrem GROUP BY Bedingung wie folgt:

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

Dies würde eine Ergebnismenge wie die folgende ergeben:

Status    Small    Medium    Large
OK         1         2         1
BAD        2         1         0
[NULL]     3         3         1 

Sie müssten das Verhalten verstehen, dass es kein Total geben würde Wert in der Spalte Status. Stattdessen hätte die Statusspalte einen NULL-Wert, der angibt, dass hier der Rollup durchgeführt wird.

Für weitere Informationen können Sie die Dokumentation hier lesen:http ://dev.mysql.com/doc/refman/5.6/en/group-by-modifiers.html