Aggregering och Gruppering i SQL
Svep för att visa menyn
SQL-aggregation använder GROUP BY-satsen för att ordna rådata i sammanfattande rader. Genom att använda funktioner som SUM(), AVG() och COUNT() kan miljontals rader omvandlas till användbara affärsmått direkt i en SQL-cell.
För många är SQL det mest naturliga språket för att sammanfatta data. Syntaxen är mycket läsbar och följer ett logiskt flöde: välj dina kategorier, välj din matematik och definiera dina grupper. I detta kapitel kommer du att använda den temporära vyn vi skapade tidigare för att utföra samma aggregationer som vi gjorde i Python, men med SQL:s enkelhet.
GROUP BY-satsen
I SQL måste varje kolumn som inte "matematiskt sammanfattas" inkluderas i GROUP BY-satsen i slutet av frågan. Detta talar om för SQL-motorn exakt hur datan ska delas upp.
SELECT cut, COUNT(*)
FROM diamond_view
GROUP BY cut
Användning av inbyggda aggregeringsfunktioner
SQL tillhandahåller flera standardfunktioner för att utföra beräkningar på numeriska kolumner:
- SUM(): summerar alla värden i kolumnen;
- AVG(): beräknar medelvärdet/genomsnittet;
- MIN() / MAX(): hittar det lägsta eller högsta värdet;
- COUNT(): returnerar antalet rader.
%sql
SELECT
cut,
SUM(x),
AVG(y)
FROM diamond_view
GROUP BY cut
Aliasnamn för professionella rapporter
Som standard kan SQL märka dina resultatkolumner som sum(Total_Profit). För att göra din utdata redo för en affärsdashboard, använd nyckelordet AS för att byta namn på dessa kolumner till något mer beskrivande.
%sql
SELECT
cut,
SUM(x) AS Total_Length,
MAX(y) AS Highest_Diamond_Value
FROM diamond_view
GROUP BY cut
Filtrering av aggregerad data: HAVING-villkoret
Ett vanligt misstag är att försöka filtrera ett aggregerat resultat med WHERE. I SQL filtrerar WHERE enskilda rader innan de grupperas. Om du vill filtrera resultaten efter att de har summerats (till exempel för att endast visa regioner med mer än $1 000 000 i vinst) måste du använda villkoret HAVING.
%sql
SELECT cut, SUM(x) AS Total_Length
FROM diamond_view
GROUP BY cut
HAVING Total_Length > 4000
Sortering av sammanfattningen
För att göra dina insikter tydligare, använd alltid ORDER BY. Detta gör det möjligt att rangordna resultaten, till exempel genom att visa de mest lönsamma regionerna överst i tabellen.
%sql
SELECT cut, SUM(x) AS Total_Length
FROM diamond_view
GROUP BY cut
ORDER BY Total_Length DESC
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal