sql >> Database >  >> RDS >> Mysql

Hoe krijg je meerdere tellingen met één SQL-query?

U kunt een CASE . gebruiken statement met een aggregatiefunctie. Dit is in principe hetzelfde als een PIVOT functie in sommige RDBMS:

SELECT distributor_id,
    count(*) AS total,
    sum(case when level = 'exec' then 1 else 0 end) AS ExecCount,
    sum(case when level = 'personal' then 1 else 0 end) AS PersonalCount
FROM yourtable
GROUP BY distributor_id


  1. Combineren van INSERT-instructies in een gegevensmodificerende CTE met een CASE-expressie

  2. Inleiding tot Python SQL-bibliotheken

  3. pass integer array naar orakel procedure door c#

  4. Hoe stel ik een sortering in voor een verbinding in SQL Server?