Sobes.tech
Junior — Middle

Ποια είναι η διαφορά μεταξύ της συνθήκης HAVING και της συνθήκης WHERE κατά την εργασία με ερωτήματα SQL;

sobes.tech AI

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

Η κύρια διαφορά μεταξύ WHERE και HAVING σε SQL:

  • WHERE φιλτράρει τις γραμμές πριν την ομαδοποίηση (GROUP BY). Εφαρμόζεται σε μεμονωμένες εγγραφές του πίνακα.
  • HAVING φιλτράρει τις ομάδες μετά την ομαδοποίηση. Χρησιμοποιείται για συνθήκες σε συναρτήσεις σύνοψης (π.χ., COUNT, SUM).

Παράδειγμα:

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

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