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

sql erhält die Gesamtzahl und die gefilterte Anzahl in einer Abfrage

Sie können Case .. When um zu prüfen, ob points mehr als 10 für eine bestimmte Zeile sind, und zählen Sie sie entsprechend (mit Sum() ).

SELECT COUNT(*) as total, 
       SUM(CASE WHEN points > 10 THEN 1 ELSE 0 END) AS winners, 
       team 
FROM users 
GROUP BY team

In MySQL können wir es weiter verkürzen als Sum() Funktion kann einfach Ergebnisse von bedingten Operatoren/Funktionen in 0/1 umwandeln (für falsch/wahr):

SELECT COUNT(*) as total, 
       SUM(points > 10) AS winners, 
       team 
FROM users 
GROUP BY team