Sobes.tech
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 υπαλλήλους.