Du kan bruge Case .. When
for at kontrollere, om points
er mere end 10 for en bestemt række, og tæl den i overensstemmelse hermed (ved hjælp af Sum()
).
SELECT COUNT(*) as total,
SUM(CASE WHEN points > 10 THEN 1 ELSE 0 END) AS winners,
team
FROM users
GROUP BY team
I MySQL kan vi forkorte det yderligere som Sum()
Funktionen kan simpelthen caste resultater af betingede operatorer/funktioner til 0/1 (for henholdsvis falsk/sand):
SELECT COUNT(*) as total,
SUM(points > 10) AS winners,
team
FROM users
GROUP BY team