sql >> Databasteknik >  >> RDS >> Database

Hur man beställer efter antal i SQL?

Problem:

Du samlade data i grupper, men du vill sortera posterna i fallande ordning efter antalet element i grupperna.

Exempel:

Vår databas har en tabell som heter user med data i följande kolumner:id , first_name , last_name och country .

id förnamn efternamn land
1 Lisa Williams England
2 Gary Anders Polen
3 Tom Williams Polen
4 Michael Brun Frankrike
5 Susan Smith USA
6 Anne Jones USA
7 Ellie Miller Polen

Låt oss skapa en rapport om våra användare. Vi grupperar resultaten efter country och räkna antalet användare från varje land. Men vi kommer också att sortera grupperna i fallande ordning efter antal användare. På så sätt kommer länderna med det största antalet användare att visas ö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
Frankrike 1

Diskussion:

För att sortera de valda posterna efter antalet element i varje grupp använder du ORDER BY klausul.

Det första steget är att använda GROUP BY sats för att skapa grupperna (i vårt exempel grupperar vi efter country kolumn). Sedan, i ORDER BY-satsen, använder du aggregatfunktionen COUNT, som räknar antalet värden i den kolumn du väljer; i vårt exempel räknar vi distinkta ID:n med COUNT(id) . Detta räknar effektivt antalet element i varje grupp. ORDER BY satsen sorterar sedan grupperna enligt den beräkningen.

Som vanligt kan du använda både stigande och fallande ordning med ORDER BY . Om du vill ha fallande ordning (som i detta exempel), använder du DESC nyckelord. Stigande ordning behöver inget nyckelord eftersom det är standard, men du kan använda ASC nyckelord om du vill vara tydlig. Detta är samma exempel men med resultat sorterade i stigande ordning:

Lösning:

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

Här är resultatet:

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

  1. Hur hämtar jag kommentaren från en PostgreSQL-databas?

  2. MySQL vs MariaDB vs Percona Server:Jämförelse av säkerhetsfunktioner

  3. Hur man genererar skript för att återskapa främmande nyckelbegränsningar i SQL Server Database - SQL Server / TSQL Tutorial Del 73

  4. Installera SQL Server 2019 på en Mac