sql >> Database >  >> RDS >> Mysql

Som rijen van verschillende voorwaarden in Mysql

U kunt een WITH ROLLUP . toevoegen clausule toe aan uw GROUP BY staat als volgt:

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

Dit zou een resultaatset opleveren als:

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

U zou het gedrag moeten begrijpen dat er geen Total . zou zijn waarde in de kolom Status. In plaats daarvan zou de Status-kolom een ​​NULL-waarde hebben die aangeeft dat dit is waar de rollup is gemaakt.

Voor meer informatie kun je de documentatie hier lezen:http ://dev.mysql.com/doc/refman/5.6/en/group-by-modifiers.html



  1. Wat doen aanhalingstekens rond de tabelnaam precies?

  2. Oracle Trigger ORA-04098:trigger is ongeldig en hervalidatie mislukt

  3. PostgreSQL-sharding configureren met ClusterControl

  4. Golang ORDER BY probleem met MySql