Middle
Ποια είναι η διαφορά μεταξύ WHERE και HAVING;
sobes.tech AI
Απάντηση από AI
Στο SQL, ο τελεστής WHERE χρησιμοποιείται για φιλτράρισμα των γραμμών πριν από την ομαδοποίηση, δηλαδή περιορίζει το σύνολο δεδομένων που θα συμμετάσχουν στο ερώτημα.
HAVING εφαρμόζεται για το φιλτράρισμα των ήδη ομαδοποιημένων δεδομένων, δηλαδή μετά την εκτέλεση συναρτήσεων σύνοψης και ομαδοποίησης.
Παράδειγμα:
SELECT department, COUNT(*) as employee_count
FROM employees
WHERE salary > 50000 -- φιλτράρουμε υπαλλήλους με μισθό πάνω από 50000
GROUP BY department
HAVING COUNT(*) > 10 -- επιλέγουμε τμήματα με περισσότερους από 10 υπαλλήλους
Εδώ, αρχικά το WHERE επιλέγει γραμμές με μισθό πάνω από 50000, στη συνέχεια τα δεδομένα ομαδοποιούνται κατά τμήματα, και το HAVING φιλτράρει τις ομάδες με βάση τον αριθμό των υπαλλήλων.