Funcțiile agregate calculează o singură valoare dintr-un set de rânduri — COUNT, SUM, AVG, MIN, . Sunt esențiale pentru sumarizarea datelor (totaluri, medii, numărări), mai ales atunci când sunt combinate cu .
Funcțiile agregate calculează o singură valoare dintr-un set de rânduri — COUNT, SUM, AVG, MIN, . Sunt esențiale pentru sumarizarea datelor (totaluri, medii, numărări), mai ales atunci când sunt combinate cu .
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;
Fiecare funcție reduce multe rânduri la o singură valoare. SUM/AVG funcționează pe numere; MIN/MAX pe numere, date sau text; COUNT pe orice.
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(*) numără toate rândurile, dar COUNT(column) numără doar rândurile în care acea coloană nu este NULL — o distincție subtilă dar importantă. COUNT(DISTINCT col) numără valorile unice.
-- 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
Fără GROUP BY, o funcție agregată sumarizează întregul rezultat într-un singur rând. Cu GROUP BY, produce un rând de rezumat per grup — utilizarea tipică și puternică.
-- ❌ 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;
Funcțiile agregate sunt esențiale pentru sumarizarea și analiza datelor — calcularea totalurilor, mediilor, numărărilor și valorilor extreme este o necesitate constantă în rapoarte, analize, tablouri de bord și logica aplicației, deci înțelegerea lor este o cunoaștere SQL fundamentală.
Cunoașterea funcțiilor principale (COUNT, SUM, AVG, MIN, MAX) și a modului în care reduc seturile de rânduri la valori unice este necesară pentru orice sumarizare de date.
O detaliu important și frecvent neînțeles este distincția COUNT(*) vs COUNT(column) (COUNT(*) numără toate rândurile, COUNT(column) numără doar valorile non-NULL — care pot da rezultate diferite, surprinzătoare), alături de COUNT(DISTINCT) pentru valori unice.
Cel mai puternic, agregatele se combină cu GROUP BY pentru a produce rezumate per grup (numărări/medii per categorie) — baza întrebărilor analitice.
Înțelegerea captcanei că nu puteți amesteca agregate cu coloane neaggregate (o eroare comună) este, de asemenea, importantă.
Deoarece sumarizarea datelor este o sarcină omniprezentă cu baze de date (fiecare raport, tablou de bord și interogare de analiză utilizează agregate), și deoarece înțelegerea funcțiilor, subtilităților COUNT și mai ales combinația lor cu GROUP BY este fundamentală pentru analiza datelor în SQL, stăpânirea funcțiilor agregate este o cunoaștere esențială, frecvent aplicată, vitală pentru lucrul cu date — făcând legătura între interogările de bază și puterea analitică și de sumarizare care face SQL valoros pentru rapoarte și perspective.