sql >> Base de Datos >  >> RDS >> Mysql

sql obtiene el recuento total y filtrado en una consulta

Puede usar Case .. When para comprobar si points son más de 10 para una fila en particular, y cuéntelos en consecuencia (usando Sum() ).

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

En MySQL, podemos acortarlo aún más como Sum() la función puede simplemente convertir los resultados de operadores/funciones condicionales a 0/1 (para falso/verdadero respectivamente):

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