Junior — Middle
Ποιος είναι ο σκοπός του τελεστή HAVING στο SQL και πώς διαφέρει από το WHERE;
sobes.tech AI
Απάντηση από AI
Η ρήτρα HAVING σε SQL χρησιμοποιείται για το φιλτράρισμα των αποτελεσμάτων μετά την ομαδοποίηση δεδομένων με το GROUP BY. Επιτρέπει τον καθορισμό συνθηκών για τα συγκεντρωμένα δεδομένα.
Διαφορά από το WHERE:
- WHERE φιλτράρει τις γραμμές πριν από την ομαδοποίηση, δουλεύει με μεμονωμένες εγγραφές.
- HAVING φιλτράρει τις ομάδες μετά την ομαδοποίηση.
Παράδειγμα:
SELECT τμήμα, COUNT(*) AS αριθμός_υπαλλήλων
FROM υπάλληλοι
GROUP BY τμήμα
HAVING COUNT(*) > 10;
Εδώ, το WHERE δεν μπορεί να χρησιμοποιηθεί για φιλτράρισμα με το COUNT(*), καθώς είναι μια συνάρτηση συγκέντρωσης, ενώ το HAVING επιτρέπει την επιλογή μόνο των τμημάτων με περισσότερους από 10 υπαλλήλους.