SQL Group By ve Having Arasındaki Fark
Group By (yani gruplandır) yardımcı sözcüğü kayıtları bir alana göre gruplandırmak için kullanılır.
Genel yazılımı aşağıdaki şekildedir
1
2
3
| Select DISTINCT | ALL sütun(lar) from Tablo(lar) where sart(lar) group by sütun(lar) |
1
2
3
4
| select ShipCountry, COUNT (*) as toplam from orders where ShipCountry LIKE 'a%' group by ShipCountry order by toplam desc |
Having gruplandırma yaparken sorguda bir koşulun da verilmesi gerekiyorsa devreye girer. Kullanılan “HAVING” yardımcı kelimesi “GROUP BY” ile gruplanan kayıtlar üzerinde kısıtlama yapar.
Genel kullanımı aşağıdaki şekildedir
1
2
3
4
| Select DISTINCT | ALL sütun(lar) from Tablo(lar) where sart(lar) group by sütun(lar) having grup_kisitlamasi |
HAVING Kullanma Kuralları
Select komutunda GROUP BY yoksa HAVING geçersiz olur.
HAVING sözcüğünü izleyen ifade içinde SUM, MIN, MAX, AVG, COUNT fonksiyonlarından en az biri mutlaka olmalıdır.
HAVING sözcüğü sadece ve sadece gruplanmış verilerin işlemleri için geçerlidir.
WHERE ile birlikte bir Select komutu içinde kullanılabilir.
WHERE ve HAVING arasındaki fark;
WHERE bir tablonun tek satırları üzerinde işlem yapan koşullar içinde geçerlidir. HAVING gruplanmış verilerin işlemleri için geçerlidir.
Örnek:
1
2
3
4
5
| select ShipCountry, COUNT (*) as toplam from orders where ShipCountry LIKE 'B%' group by ShipCountry having COUNT (*)>50 order by toplam desc |
Yorumlar
Yorum Gönder