Junior
SQL-də WHERE və HAVING ifadələri arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
WHERE FROM nəticələrinin sətirlərini qruplaşdırmadan əvvəl tətbiq olunur və onları filtrləyir. HAVING isə qruplaşdırmadan sonra tətbiq olunur və GROUP BY ilə formalaşdırılmış qrupləri filtrləyir.
Nümunə:
Tutaq ki, customer_id, order_date və amount sütunlarına malik orders cədvəlimiz var.
Ümumi sifariş məbləği 1000-dən çox olan bütün müştəriləri tapın:
SELECT customer_id, SUM(amount)
FROM orders
GROUP BY customer_id
HAVING SUM(amount) > 1000;
1000-dən çox olan bütün sifarişləri tapın:
SELECT customer_id, order_date, amount
FROM orders
WHERE amount > 1000;
Müqayisə cədvəli:
| Xüsusiyyət | WHERE | HAVING |
|---|---|---|
| Tətbiq | Ayrı-ayrı sətirlər üzərində qruplaşdırmadan əvvəl | Qruplaşdırmadan sonra qruplar üzərində |
| İstifadə edir | FROM-dan sütunlar |
GROUP BY-dən sütunlar və toplama funksiyaları |
| İcrası | GROUP BY-dən əvvəl |
GROUP BY-dən sonra |
| Toplama funksiyaları | Birbaşa istifadə edilə bilməz | İstifadə oluna bilər |