HAVING Kullanımı etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
HAVING Kullanımı etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

19 Mayıs 2014 Pazartesi

SQL'de COMPUTE ve COMPUTE BY Kullanımı

  • COMPUTE sorgumuzdaki kolonları Aggregate Fonksiyonlar ile kullanmamızı sağlar.
  • COMPUTE tüm sonuç kümesini listeler ve bu listenin altında tek bir detay satırı görüntüler. 
  • Farklı olarak tek sorguda 2 tane sonuç listesi bize döndürür. 2.liste detay listesidir. 
  • COMPUTE ile kullanılan sütun SELECT ifadesinde yer almalıdır.
  • COMPUTE BY kullanarak daha detaylı gruplandırma da yapılabilir.
NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu 

Örnek Sorgu 1:
SELECT productid, orderid, quantity FROM [Order Details]
ORDER BY productid, orderid COMPUTE SUM(quantity)

(Sipariş detayları (Order Details) tablosundaki tüm satırları listeler ve kayıt kümesinin sonuna tüm ürünlerin genel toplamını verir.)

Örnek Sorgu 2:
SELECT productid, orderid, quantity FROM [order details]WHERE orderid<10250 ORDER BY orderid,productid COMPUTE SUM(quantity) BY orderid COMPUTE SUM(quantity)

(Sipariş Detayları (Order Details) tablosundaki tüm satırları listeler ve her sipariş altına sipariş genel toplamını verir. Son olarak ise tüm siparişlerdeki genel toplam görüntülenir.)  

NOT : SQL Server 2008 RS sonrası sürümlerde COMPUTE ve COMPUTE BY çalışmamaktadır. MSDN makalelerinde COMPUTE ve COMPUTE BY için SQL Server 2008 RS sonrası sürümlerde kaldırılacağı ve yerine ROLLUP kullanılması tavsiye edilmektedir. Detaylı bilgi için tıklayınız.

17 Mayıs 2014 Cumartesi

SQL'de HAVING Kullanımı

  • Toplam fonksiyonlarını kullanırken kısıt girilmesi gerektiğinde WHERE komutunu kullanamayız. HAVING, GROUP BY ile elde edilecek satırları kısıtlamak için kullanılır.
  • Görev ve işlev bakımından WHERE gibi çalışır fakat WHERE gruplama işlemlerinden önce, HAVING ise GROUP BY'dan sonra kullanılır.
NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu 

Örnek Sorgu : SELECT ProductID, SUM(quantity) AS total_quantity FROM [order details] GROUP BY ProductID HAVING SUM(quantity) > 1300
(Toplam sipariş miktarı 1300 adetten fazla olan ürünkodlarını listeleyelim.)




Copyright 2013-2017 | İbrahim BAYRAKTAR /dev/null Web Günlüğü