Mysql
 sql >> Database >  >> RDS >> Mysql

sql ottiene il conteggio totale e filtrato in una query

Puoi utilizzare Case .. When per verificare se points sono più di 10 per una particolare riga e contala di conseguenza (usando 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, possiamo abbreviarlo ulteriormente come Sum() function può semplicemente eseguire il cast dei risultati di operatori/funzioni condizionali su 0/1 (rispettivamente per false/true):

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