Συναθροιστικές συναρτήσεις υπολογίζουν μια μόνη τιμή από ένα σύνολο γραμμών — COUNT, SUM, AVG, MIN, . Είναι απαραίτητες για τη σύνοψη δεδομένων (σύνολα, μέσοι όροι, μετρήσεις), ειδικά σε συνδυασμό με .
Συναθροιστικές συναρτήσεις υπολογίζουν μια μόνη τιμή από ένα σύνολο γραμμών — COUNT, SUM, AVG, MIN, . Είναι απαραίτητες για τη σύνοψη δεδομένων (σύνολα, μέσοι όροι, μετρήσεις), ειδικά σε συνδυασμό με .
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;
Κάθε συναρτήση μειώνει πολλές γραμμές σε μία τιμή. SUM/AVG λειτουργούν σε αριθμούς· MIN/MAX σε αριθμούς, ημερομηνίες ή κείμενο· COUNT σε οτιδήποτε.
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(*) μετρά όλες τις γραμμές, αλλά COUNT(column) μετρά μόνο γραμμές όπου αυτή η στήλη δεν είναι NULL — μια λεπτή αλλά σημαντική διάκριση. COUNT(DISTINCT col) μετρά τις μοναδικές τιμές.
-- 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
Χωρίς GROUP BY, μια συναθροιστική συνοψίζει το ολόκληρο αποτέλεσμα σε μία γραμμή. Με GROUP BY, παράγει μία σύνοψη γραμμή ανά ομάδα — τη συνήθη, ισχυρή χρήση.
-- ❌ 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;
Οι συναθροιστικές συναρτήσεις είναι απαραίτητες για τη σύνοψη και ανάλυση δεδομένων — ο υπολογισμός συνόλων, μέσων όρων, μετρήσεων και ακραίων τιμών είναι συνεχής ανάγκη σε αναφορές, ανάλυση, ταμπλό και εφαρμογική λογική, οπότε η κατανόησή τους είναι θεμελιώδης γνώση SQL.
Η γνώση των κύριων συναρτήσεων (COUNT, SUM, AVG, MIN, MAX) και του τρόπου με τον οποίο μειώνουν σύνολα γραμμών σε μονές τιμές είναι απαραίτητη για οποιαδήποτε σύνοψη δεδομένων.
Ένα σημαντικό, συχνά παρεξηγημένο σημείο είναι η διάκριση COUNT(*) έναντι COUNT(column) (το COUNT(*) μετρά όλες τις γραμμές, το COUNT(column) μετρά μόνο τις τιμές που δεν είναι NULL — που μπορεί να δώσει διαφορετικά, εκπληκτικά αποτελέσματα), μαζί με COUNT(DISTINCT) για μοναδικές τιμές.
Το πιο ισχυρό πράγμα, οι συναθροιστικές συνδυάζονται με GROUP BY για να παράγουν περιλήψεις ανά ομάδα (μετρήσεις/μέσοι όροι ανά κατηγορία) — το θεμέλιο των αναλυτικών ερωτημάτων.
Η κατανόηση του προβλήματος ότι δεν μπορείτε να ανακατέψετε συναθροιστικές με μη ομαδοποιημένες στήλες (ένα κοινό σφάλμα) είναι επίσης σημαντική.
Επειδή η σύνοψη δεδομένων είναι μια καθολική εργασία βάσης δεδομένων (κάθε αναφορά, ταμπλό και ανάλυση χρησιμοποιούν συναθροιστικές), και επειδή η κατανόηση των συναρτήσεων, των λεπτοτήτων COUNT, και ειδικά ο συνδυασμός τους με GROUP BY είναι θεμελιώδης για την ανάλυση δεδομένων σε SQL, η κατάκτηση συναθροιστικών συναρτήσεων είναι ουσιαστική, συχνά εφαρμοσμένη γνώση απαραίτητη για εργασία με δεδομένα — που γεφυρώνει τη βασική αναζήτηση και τη αναλυτική, συνοψίζουσα δύναμη που κάνει τη SQL πολύτιμη για αναφορές και γνώσεις.