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 φιλτράρει τα ήδη ομαδοποιημένα δεδομένα.