Sobes.tech
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 τις τελικές ομάδες.