Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

sql obtém contagem total e filtrada em uma consulta


Você pode usar Case .. When para verificar se points são mais de 10 para uma linha em particular, e conte-os de acordo (usando Sum() ).
SELECT COUNT(*) as total, 
       SUM(CASE WHEN points > 10 THEN 1 ELSE 0 END) AS winners, 
       team 
FROM users 
GROUP BY team

No MySQL, podemos reduzi-lo ainda mais como Sum() função pode simplesmente converter resultados de operadores/funções condicionais para 0/1 (para falso/verdadeiro respectivamente):
SELECT COUNT(*) as total, 
       SUM(points > 10) AS winners, 
       team 
FROM users 
GROUP BY team