Sobes.tech
Junior

Ποια είναι η διαφορά μεταξύ των εντολών WHERE και HAVING σε SQL;

sobes.tech AI

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

Το WHERE εφαρμόζεται πριν από την ομαδοποίηση και φιλτράρει τις γραμμές του αποτελέσματος FROM. Το HAVING εφαρμόζεται μετά την ομαδοποίηση και φιλτράρει τις ομάδες που σχηματίζονται με το GROUP BY.

Παράδειγμα:

Ας υποθέσουμε ότι έχουμε έναν πίνακα orders με στήλες customer_id, order_date και amount.

Βρείτε όλους τους πελάτες των οποίων το συνολικό ποσό παραγγελιών υπερβαίνει τα 1000:

SELECT customer_id, SUM(amount)
FROM orders
GROUP BY customer_id
HAVING SUM(amount) > 1000;

Βρείτε όλες τις παραγγελίες με ποσό μεγαλύτερο από 1000:

SELECT customer_id, order_date, amount
FROM orders
WHERE amount > 1000;

Πίνακας σύγκρισης:

Χαρακτηριστικό WHERE HAVING
Εφαρμογή Σε μεμονωμένες γραμμές πριν από την ομαδοποίηση Σε ομάδες γραμμών μετά την ομαδοποίηση
Χρησιμοποιεί Στήλες από το FROM Συναρτήσεις σύνοψης και στήλες από το GROUP BY
Εκτελείται Πριν από το GROUP BY Μετά το GROUP BY
Συναρτήσεις σύνοψης Δεν μπορεί να χρησιμοποιηθεί άμεσα Μπορεί να χρησιμοποιηθεί