Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Aggregering och Gruppering i SQL | Arbeta med data
Databricks-Grunder: En Nybörjarguide

Aggregering och Gruppering i SQL

Svep för att visa menyn

Note
Definition

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
question mark

Vilken SQL-klausul krävs för att skapa sammanfattningsrader när du använder aggregatfunktioner som SUM() eller AVG()?

Vänligen välj det korrekta svaret

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 7

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 4. Kapitel 7
some-alt