Aggregatfunktioner beregner en enkelt værdi ud fra et sæt rækker — COUNT, SUM, AVG, MIN, . De er væsentlige for at opsummere data (totaler, gennemsnit, antal), især når de kombineres med .
Aggregatfunktioner beregner en enkelt værdi ud fra et sæt rækker — COUNT, SUM, AVG, MIN, . De er væsentlige for at opsummere data (totaler, gennemsnit, antal), især når de kombineres 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 funktion reducerer mange rækker til én værdi. SUM/AVG fungerer på tal; MIN/MAX på tal, datoer eller tekst; COUNT på hvad 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(*) tæller alle rækker, men COUNT(kolonne) tæller kun rækker hvor den pågældende kolonne ikke er NULL — en subtil men vigtig forskel. COUNT(DISTINCT col) tæller unikke værdier.
-- 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
Uden GROUP BY opsummerer et aggregat hele resultatet til én række. Med GROUP BY produceres én opsummeringsbække pr. gruppe — den typiske, kraftfulde brug.
-- ❌ 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;
Aggregatfunktioner er væsentlige for at opsummere og analysere data — beregning af totaler, gennemsnit, antal og ekstremværdier er et konstant behov inden for rapportering, analytik, dashboards og applikationslogik, så forståelse af dem er fundamental SQL-viden.
Kendskab til de vigtigste funktioner (COUNT, SUM, AVG, MIN, MAX) og hvordan de reducerer sæt af rækker til enkelte værdier er nødvendigt for enhver dataopsummering.
En vigtig, ofte misforstået detalje er COUNT(*) vs COUNT(kolonne) distinktionen (COUNT(*) tæller alle rækker, COUNT(kolonne) tæller kun værdier, der ikke er NULL — hvilket kan give forskellige, overraskende resultater), sammen med COUNT(DISTINCT) for unikke værdier.
Mest kraftfuldt kombineres aggregater med GROUP BY for at producere opsummeringer pr. gruppe (antal/gennemsnit pr. kategori) — grundlaget for analytiske forespørgsler.
Forståelse af fælden at du ikke kan blande aggregater med ikke-grupperede kolonner (en almindelig fejl) er også vigtig.
Da opsummering af data er en allestedsnærværende databaseopgave (enhver rapport, dashboard og analytisk forespørgsel bruger aggregater), og da forståelse af funktionerne, COUNT-subtiliteterne og især deres kombination med GROUP BY er fundamental for dataanalyse i SQL, er beherskelse af aggregatfunktioner videns vigtige område, der anvendes hyppigt og er væsentlig for arbejdet med data — der bygger bro mellem grundlæggende forespørgsler og den analytiske, opsummerende kraft, der gør SQL værdifuld for rapportering og indsigter.
Et bibliotek af IT-interviewspørgsmål med detaljerede svar — fra Junior til Senior.
Donér