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