Agregacijske funkcije izračunajo eno samo vrednost iz niza vrstic — COUNT, SUM, AVG, MIN, . Nujne so za povzemanje podatkov (vsote, povprečja, števila), posebej v kombinaciji z .
Agregacijske funkcije izračunajo eno samo vrednost iz niza vrstic — COUNT, SUM, AVG, MIN, . Nujne so za povzemanje podatkov (vsote, povprečja, števila), posebej v kombinaciji z .
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;
Vsaka funkcija reducira mnogo vrstic v eno vrednost. SUM/AVG delujeta na številih; MIN/MAX na številih, datumih ali besedilu; COUNT na čem koli.
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(*) šteje vse vrstice, vendar COUNT(column) šteje samo vrstice, kjer je ta stolpec ne NULL — subtilna, a pomembna razlika. COUNT(DISTINCT col) šteje edinstvene vrednosti.
-- 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
Brez GROUP BY agregacija povzame celoten rezultat v eno vrstico. Z GROUP BY proizvede eno povzetno vrstico na skupino — tipična, zmogljiva raba.
-- ❌ 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;
Agregacijske funkcije so nujne za povzemanje in analizo podatkov — računanje vsot, povprečij, števil in ekstremnih vrednosti je nenehna potreba pri poročanju, analitiki, nadzornih ploščah in logiki aplikacij, zato razumevanje teh funkcij je temeljno znanje SQL.
Poznavanje glavnih funkcij (COUNT, SUM, AVG, MIN, MAX) in kako reducirajo nize vrstic v posamezne vrednosti je potrebno za kakršno koli povzemanje podatkov.
Pomembna, pogosto napačno razumljena podrobnost je razlika med COUNT(*) in COUNT(column) (COUNT(*) šteje vse vrstice, COUNT(column) šteje samo vrednosti, ki niso NULL — kar lahko da drugačne, presenetljive rezultate), skupaj s COUNT(DISTINCT) za edinstvene vrednosti.
Najmočneje se agregacije kombinirajo z GROUP BY, da proizvedejo povzetke po skupinah (števila/povprečja na kategorijo) — temelj analitičnih poizvedb.
Razumevanje paste, da ne morete mešati agregatov z negrupiranimi stolpci (pogosta napaka), je prav tako pomembno.
Ker je povzemanje podatkov splošna podatkovna baza naloga (vsako poročilo, nadzorna plošča in analitična poizvedka uporabljata agregacije), in ker je razumevanje funkcij, subtilnosti COUNT in posebej njihove kombinacije z GROUP BY temeljno za analizo podatkov v SQL, je obvladovanje agregatnih funkcij osnovno, pogosto uporabljeno znanje, potrebno za delo s podatki — premostitev osnovnih poizvedb in analitične, povzemalske moči, ki naredi SQL dragocen za poročanje in vpoglede.