Aggregering og Gruppering i SQL
Sveip for å vise menyen
SQL-aggregasjon bruker GROUP BY-setningen for å organisere rådata i sammendragsrader. Ved å bruke funksjoner som SUM(), AVG() og COUNT(), kan du omdanne millioner av rader til handlingsrettede forretningsmålinger direkte i en SQL-celle.
For mange er SQL det mest naturlige språket for å oppsummere data. Syntaksen er svært lesbar og følger en logisk rekkefølge: velg kategoriene dine, velg utregningen, og definer gruppene. I dette kapittelet vil du bruke den midlertidige visningen vi opprettet tidligere for å utføre de samme aggregeringene som vi gjorde i Python, men med enkelheten til SQL.
GROUP BY-setningen
I SQL må alle kolonner som ikke blir "matematisk oppsummert" inkluderes i GROUP BY-setningen på slutten av spørringen. Dette forteller SQL-motoren nøyaktig hvordan dataene skal deles opp.
SELECT cut, COUNT(*)
FROM diamond_view
GROUP BY cut
Bruk av innebygde aggregeringsfunksjoner
SQL tilbyr flere standardfunksjoner for å utføre beregninger på numeriske kolonner:
- SUM(): summerer alle verdier i kolonnen;
- AVG(): beregner gjennomsnittet;
- MIN() / MAX(): finner laveste eller høyeste verdi;
- COUNT(): returnerer antall rader.
%sql
SELECT
cut,
SUM(x),
AVG(y)
FROM diamond_view
GROUP BY cut
Aliasering for profesjonelle rapporter
Som standard kan SQL merke resultatkolonner som sum(Total_Profit). For å gjøre utdataene klare for et forretningsdashboard, bruk nøkkelordet AS for å gi disse kolonnene mer beskrivende navn.
%sql
SELECT
cut,
SUM(x) AS Total_Length,
MAX(y) AS Highest_Diamond_Value
FROM diamond_view
GROUP BY cut
Filtrering av aggregerte data: HAVING-setningen
En vanlig feil er å forsøke å filtrere et aggregert resultat ved å bruke WHERE. I SQL filtrerer WHERE individuelle rader før de grupperes. Hvis du vil filtrere resultatene etter at de er summert (for eksempel for kun å vise regioner med mer enn $1 000 000 i profitt), må du bruke HAVING-setningen.
%sql
SELECT cut, SUM(x) AS Total_Length
FROM diamond_view
GROUP BY cut
HAVING Total_Length > 4000
Sortering av sammendraget
For å fremheve innsiktene dine, bruk alltid ORDER BY. Dette lar deg rangere resultatene, for eksempel ved å vise de mest lønnsomme regionene øverst i tabellen.
%sql
SELECT cut, SUM(x) AS Total_Length
FROM diamond_view
GROUP BY cut
ORDER BY Total_Length DESC
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår