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

sql få samlet og filtreret antal i én forespørgsel

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


  1. Hvordan forbinder jeg mySQL i mit Android-projekt?

  2. Datokonvertering og kultur:Forskellen mellem DATE og DATETIME

  3. Hvordan får man en liste kolonnenavne og datatyper af en tabel i PostgreSQL?

  4. Hvordan vælger man kolonner fra en tabel, som ikke har nulværdier?