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 για να φιλτράρετε τα συγκεντρωτικά αποτελέσματα.