Aggregering og Gruppering i SQL
Stryg for at vise menuen
SQL-aggregation anvender GROUP BY-klausulen til at arrangere rådata i sammendragsrækker. Ved at bruge funktioner som SUM(), AVG() og COUNT() kan millioner af rækker omdannes til brugbare forretningsmålinger direkte i en SQL-celle.
For mange er SQL det mest naturlige sprog til at opsummere data. Syntaksen er meget læsbar og følger et logisk flow: vælg dine kategorier, vælg din matematik og definer dine grupper. I dette kapitel vil du bruge den midlertidige visning, vi oprettede tidligere, til at udføre de samme aggregationer, som vi gjorde i Python, men med SQL's enkelhed.
GROUP BY-klausulen
I SQL skal enhver kolonne, der ikke bliver "matematisk opsummeret", inkluderes i GROUP BY-sætningen i slutningen af forespørgslen. Dette fortæller SQL-motoren præcis, hvordan dataene skal opdeles.
SELECT cut, COUNT(*)
FROM diamond_view
GROUP BY cut
Brug af indbyggede aggregeringsfunktioner
SQL tilbyder flere standardfunktioner til at udføre beregninger på dine numeriske kolonner:
- SUM(): summerer alle værdier i kolonnen;
- AVG(): beregner gennemsnittet;
- MIN() / MAX(): finder den laveste eller højeste værdi;
- COUNT(): returnerer antallet af rækker.
%sql
SELECT
cut,
SUM(x),
AVG(y)
FROM diamond_view
GROUP BY cut
Aliasnavne til professionelle rapporter
Som standard kan SQL navngive dine resultatkolonner som sum(Total_Profit). For at gøre dit output klar til et forretningsdashboard, brug AS-nøgleordet til at omdøbe disse kolonner til noget mere beskrivende.
%sql
SELECT
cut,
SUM(x) AS Total_Length,
MAX(y) AS Highest_Diamond_Value
FROM diamond_view
GROUP BY cut
Filtrering af aggregerede data: HAVING-sætningen
En almindelig fejl er at forsøge at filtrere et aggregeret resultat ved hjælp af WHERE. I SQL filtrerer WHERE individuelle rækker, før de grupperes. Hvis du vil filtrere resultaterne, efter de er blevet summeret (for eksempel kun vise regioner med mere end $1.000.000 i profit), skal du bruge HAVING-sætningen.
%sql
SELECT cut, SUM(x) AS Total_Length
FROM diamond_view
GROUP BY cut
HAVING Total_Length > 4000
Sortering af oversigten
For at fremhæve dine indsigter, brug altid ORDER BY. Dette giver dig mulighed for at rangere dine resultater, for eksempel ved at vise de mest rentable regioner øverst i tabellen.
%sql
SELECT cut, SUM(x) AS Total_Length
FROM diamond_view
GROUP BY cut
ORDER BY Total_Length DESC
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat