having vs where

WHERE yan tümcesi, belirtilen bir koşula göre satırları filtreler. Ancak HAVING yan
tümcesi, belirtilen bir koşula göre satır gruplarını filtreler.
Başka bir deyişle, WHERE yan tümcesi satırlara uygulanırken HAVING yan tümcesi satır
gruplarına uygulanmaktadır.

SELECT customer_id, SUM (amount) FROM payment GROUP BY
customer_id HAVING SUM (amount) > 200;

SELECT store_id, COUNT (customer_id) FROM customer GROUP BY
store_id;

Sorgu store_id’lere göre gruplandırma yapar ve bu store_id değerlerine sahip
kaç tane customer_id satırı olduğunu veya kaç tane satır olduğunu hesaplar.

(COUNT(customer_id) )Aşağıdaki sorgu ile aynı sonucu verir.

SELECT store_id, COUNT (*) FROM customer GROUP BY store_id;

SELECT store_id, COUNT (customer_id) FROM customer GROUP BY
store_id HAVING COUNT (customer_id) > 300;

Bu sorguda ise gruplandırma yapıldıktan ve satır sayıları
hesaplandıktan sonra toplam customer_id satır sayısı 300’den büyük olan store_id
değerini ve bu store_id değerine sahip customer_id satır sayısını ekrana getirir.

SELECT rental_id , min(amount) min_amount FROM payment GROUP
BY rental_id HAVING min(amount)>10 ORDER BY min(amount) ;

Sorgu rental_id değerine göre gruplandırma yaparken bu rental_id değerlerine karşılık
gelen minimum amount değerini hesaplar. Minimum amount değeri 10’dan büyük
rental_id değerlerini ekrana getirir.

Kategori seçin...