Aggregatfunksjoner beregner en enkelt verdi fra et sett med rader — COUNT, SUM, AVG, MIN, . De er essensielle for å oppsummere data (totaler, gjennomsnitt, antall), spesielt kombinert med .
Aggregatfunksjoner beregner en enkelt verdi fra et sett med rader — COUNT, SUM, AVG, MIN, . De er essensielle for å oppsummere data (totaler, gjennomsnitt, antall), spesielt kombinert 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;
Hver funksjon reduserer mange rader til én verdi. SUM/AVG fungerer på tall; MIN/MAX på tall, datoer eller tekst; COUNT på hva 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(*) teller alle rader, men COUNT(kolonne) teller bare rader der kolonnen ikke er NULL — en subtil, men viktig forskjell. COUNT(DISTINCT kol) teller unike verdier.
-- 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
Uten GROUP BY oppsummerer et aggregat hele resultatet til én rad. Med GROUP BY produserer det én sammendragrad per gruppe — den typiske, kraftfulle bruken.
-- ❌ 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;
Aggregatfunksjoner er essensielle for å oppsummere og analysere data — beregning av totaler, gjennomsnitt, antall og ekstremverdier er et konstant behov i rapportering, analyse, dashboards og applikasjonslogikk, så forståelse av dem er grunnleggende SQL-kunnskap.
Å kjenne til hovedfunksjonene (COUNT, SUM, AVG, MIN, MAX) og hvordan de reduserer sett med rader til enkeltværdier er nødvendig for enhver dataoppsummering.
En viktig, ofte misforstått detalj er COUNT(*) vs COUNT(kolonne) forskjellen (COUNT(*) teller alle rader, COUNT(kolonne) teller bare verdier som ikke er NULL — som kan gi ulike, overraskende resultater), sammen med COUNT(DISTINCT) for unike verdier.
Mest kraftfullt kombineres aggregater med GROUP BY for å produsere sammendragu per gruppe (antall/gjennomsnitt per kategori) — grunnlaget for analytiske spørringer.
Å forstå fallgruven at du ikke kan blande aggregater med ikke-grupperte kolonner (en vanlig feil) er også viktig.
Da oppsummering av data er en allestedsnærværende databaseoppgave (hver rapport, dashboard og analysspørring bruker aggregater), og fordi forståelse av funksjonene, COUNT-subtiliteter og spesielt deres kombinasjon med GROUP BY er grunnleggende for dataanalyse i SQL, er det å mestre aggregatfunksjoner kjernekunnskaper som ofte brukes og er essensielle for arbeid med data — som bygger bro mellom grunnleggende spørring og den analytiske, oppsummerings-kraften som gjør SQL verdifull for rapportering og innsikt.