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

Hvordan bestiller man efter antal i SQL?

Problem:

Du samlede data i grupper, men du vil sortere posterne i faldende rækkefølge efter antallet af elementer i grupperne.

Eksempel:

Vores database har en tabel ved navn user med data i følgende kolonner:id , first_name , last_name og country .

id fornavn efternavn land
1 Lisa Williams England
2 Gary Anders Polen
3 Tom Williams Polen
4 Michael Brun Frankrig
5 Susan Smith USA
6 Anne Jones USA
7 Ellie Møller Polen

Lad os oprette en rapport om vores brugere. Vi grupperer resultaterne efter country og tæl antallet af brugere fra hvert land. Men vi sorterer også grupperne i faldende rækkefølge efter antal brugere. På den måde vises landene med det største antal brugere øverst.

Løsning:

SELECT country,
 COUNT(id) 
FROM user
GROUP BY  country
ORDER BY COUNT(id) DESC ;
land count(id)
Polen 3
USA 2
England 1
Frankrig 1

Diskussion:

For at sortere de valgte poster efter antallet af elementer i hver gruppe, bruger du ORDER BY klausul.

Det første trin er at bruge GROUP BY klausul for at oprette grupperne (i vores eksempel grupperer vi efter country kolonne). Derefter, i ORDER BY-sætningen, bruger du den samlede funktion COUNT, som tæller antallet af værdier i den kolonne, du ønsker; i vores eksempel tæller vi forskellige id'er med COUNT(id) . Dette tæller effektivt antallet af elementer i hver gruppe. ORDER BY klausul sorterer derefter grupperne i henhold til den beregning.

Som sædvanlig kan du bruge både stigende eller faldende rækkefølge med ORDER BY . Hvis du ønsker faldende rækkefølge (som i dette eksempel), bruger du DESC søgeord. Stigende rækkefølge behøver ikke noget søgeord, fordi det er standard, men du kan bruge ASC søgeord, hvis du vil være eksplicit. Dette er det samme eksempel, men med resultater sorteret i stigende rækkefølge:

Løsning:

SELECT country,
 COUNT(id) 
FROM user
GROUP BY  country
ORDER BY COUNT(id);

Her er resultatet:

land count(id)
England 1
Frankrig 1
USA 2
Polen 3

  1. Oprettelse af en app til Django-filmanbefaling ved hjælp af Jaccard-indeks

  2. Kan jeg i MySQL udskyde kontrol af referenceintegritet, indtil commit

  3. Navigat til MySQL

  4. Splitting Strings:En opfølgning