Aggregatfunktioner beräknar ett enda värde från en uppsättning rader — COUNT, SUM, AVG, MIN, . De är essentiella för att sammanfatta data (totaler, genomsnitt, antal), särskilt i kombination med .
Aggregatfunktioner beräknar ett enda värde från en uppsättning rader — COUNT, SUM, AVG, MIN, . De är essentiella för att sammanfatta data (totaler, genomsnitt, antal), särskilt i kombination med .
MAXGROUP BYSELECT
COUNT(*) AS total_rows, -- count all rows
COUNT(email) AS rows_with_email, -- count NON-NULL emails (ignores NULLs!)
SUM(amount) AS total_amount, -- sum of a column
AVG(price) AS average_price, -- average
MIN(price) AS lowest, -- minimum
MAX(price) AS highest -- maximum
FROM orders;
Varje funktion reducerar många rader till ett värde. SUM/AVG fungerar på tal; MIN/MAX på tal, datum eller text; COUNT på vad som helst.
COUNT(*) -- counts ALL rows (including those with NULLs)
COUNT(email) -- counts only rows where email is NOT NULL
COUNT(DISTINCT country) -- counts UNIQUE non-null values
COUNT(*) räknar alla rader, men COUNT(kolumn) räknar endast rader där kolumnen inte är NULL — en subtil men viktig skillnad. COUNT(DISTINCT kol) räknar unika värden.
-- aggregate PER GROUP instead of the whole table
SELECT country, COUNT(*) AS users, AVG(age) AS avg_age
FROM users
GROUP BY country; -- one result row per country
-- → for each country: how many users and their average age
Utan GROUP BY sammanfattar ett aggregat hela resultatet i en enda rad. Med GROUP BY produceras en sammanfattningsrad per grupp — det typiska, kraftfulla sättet.
-- ❌ ERROR — can't mix an aggregate with a non-grouped column
SELECT name, COUNT(*) FROM users; -- which name? ambiguous
-- ✅ either group by it, or only select aggregates
SELECT country, COUNT(*) FROM users GROUP BY country;
Agregatfunktioner är essentiella för att sammanfatta och analysera data — beräkning av totaler, genomsnitt, antal och extremvärden är ett konstant behov inom rapportering, analys, instrumentpaneler och applikationslogik, så förståelse för dem är grundläggande SQL-kunskap.
Att känna till huvudfunktionerna (COUNT, SUM, AVG, MIN, MAX) och hur de reducerar uppsättningar av rader till enskilda värden är nödvändigt för all datasammanfattning.
En viktig, ofta missförstådd detalj är skillnaden mellan COUNT(*) och COUNT(kolumn) (COUNT(*) räknar alla rader, COUNT(kolumn) räknar endast värden som inte är NULL — vilket kan ge olika, överraskande resultat), tillsammans med COUNT(DISTINCT) för unika värden.
Mest kraftfullt kombineras aggregat med GROUP BY för att producera sammanfattningar per grupp (antal/genomsnitt per kategori) — grunderna för analytiska frågor.
Att förstå problemet att du inte kan blanda aggregat med icke-grupperade kolumner (ett vanligt fel) är också viktigt.
Eftersom datasammanfattning är en genomgripande databasuppgift (varje rapport, instrumentpanel och analysfråga använder aggregat), och eftersom förståelse för funktionerna, COUNT-subtiliteterna och särskilt deras kombination med GROUP BY är grundläggande för dataanalys i SQL, är det att bemästra aggregatfunktioner kärnkunskap som tillämpas ofta och är essentiell för att arbeta med data — en bro mellan grundläggande frågor och den analytiska, sammanfattande kraft som gör SQL värdefullt för rapportering och insikter.