Agregatne funkcije računaju jednu vrijednost iz skupa redaka — COUNT, SUM, AVG, MIN, MAX. Bitne su za sumiranje podataka (zbroje, prosjeke, brojeve), posebno kombinirane s .
Agregatne funkcije računaju jednu vrijednost iz skupa redaka — COUNT, SUM, AVG, MIN, MAX. Bitne su za sumiranje podataka (zbroje, prosjeke, brojeve), posebno kombinirane s .
GROUP 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;
Svaka funkcija svodi mnogo redaka na jednu vrijednost. SUM/AVG rade na brojevima; MIN/MAX na brojevima, datumima ili tekstu; COUNT na bilo čemu.
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(*) broji sve redake, ali COUNT(stupac) broji samo redake gdje taj stupac nije NULL — suptilna, ali važna razlika. COUNT(DISTINCT stup) broji jedinstvene vrijednosti.
-- 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
Bez GROUP BY, agregatna funkcija sumira cijeli rezultat u jedan red. S GROUP BY, proizvodi jedan redak sažetka po grupi — tipična, moćna uporaba.
-- ❌ 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;
Agregatne funkcije su bitne za sumiranje i analizu podataka — računanje zbroja, prosjeka, brojanja i ekstrema je stalnoj potreban u izvještavanju, analitici, nadzornim pločama i logici aplikacije, tako da je njihovo razumijevanje temeljno SQL znanje.
Znanje glavnih funkcija (COUNT, SUM, AVG, MIN, MAX) i kako smanjuju skupove redaka na pojedine vrijednosti nužno je za bilo koji sažetak podataka.
Važna, često nerazumljena detalj je razlika između COUNT(*) i COUNT(stupac) (COUNT(*) broji sve redake, COUNT(stupac) broji samo vrijednosti koje nisu NULL — što može dati različite, iznenađujuće rezultate), zajedno s COUNT(DISTINCT) za jedinstvene vrijednosti.
Najmoćnije, agregatne funkcije se kombiniraju s GROUP BY kako bi se proizveli sažeci po grupama (brojanja/prosjeci po kategoriji) — temelj analitičkih upita.
Razumijevanje problema da ne možete miješati agregatne funkcije s nesadržavajućim stupcima (čest problem) također je važno.
Jer je sumiranje podataka sveprisutna baza podataka (svaki izvještaj, nadzorna ploča i analitički upit koriste agregatne funkcije), i jer je razumijevanje funkcija, COUNT suptilnosti, i posebno njihove kombinacije s GROUP BY temeljno za analizu podataka u SQL-u, ovladavanje agregatnim funkcijama je temeljno, često primijenjeno znanje bitno za rad s podacima — premošćujući osnovnu upitavanje i analitičku, sažimajuću moć koja SQL čini vrijednim za izvještavanje i uvide.