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