Sobes.tech
Junior — Middle

Εξηγήστε τις διαφορές μεταξύ του τελεστή HAVING και της συνθήκης WHERE σε SQL και σε ποιες περιπτώσεις πρέπει να χρησιμοποιούνται.

sobes.tech AI

Απάντηση από AI

Στο SQL, η συνθήκη WHERE φιλτράρει τις γραμμές πριν την ομαδοποίηση, ενώ η HAVING το κάνει μετά.

  • WHERE εφαρμόζεται σε μεμονωμένες γραμμές του πίνακα και περιορίζει το σύνολο δεδομένων που θα συγχωνευθεί.
  • HAVING εφαρμόζεται στα αποτελέσματα των συναρτήσεων συγχώνευσης και φιλτράρει τις ομάδες που σχηματίζονται με την εντολή GROUP BY.

Παράδειγμα:

SELECT τμήμα, COUNT(*) ως αριθμός_υπαλλήλων
FROM υπάλληλοι
WHERE μισθός > 50000  -- φιλτράρουμε υπαλλήλους με μισθό πάνω από 50000
GROUP BY τμήμα
HAVING COUNT(*) > 10    -- επιλέγουμε τμήματα με περισσότερους από 10 υπαλλήλους

Χρησιμοποιήστε WHERE για να φιλτράρετε τα αρχικά δεδομένα και HAVING για να φιλτράρετε τα συγκεντρωτικά αποτελέσματα.