WITH CUBE etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
WITH CUBE etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

6 Mayıs 2012 Pazar

24. GROUPING Fonksiyonu

  • GROUP BY ile kullanılan ROLLUP ve CUBE ile elde edilen sonuç listesini GROUPING fonksiyonu daha kolay değerlendirip yorumlamamızı sağlar. 
  • GROUPING fonksiyonu ile belirtilen her bir sütun için sonuç listesinde ayrı bir sütun oluşturulur. 
  • Sonuç listesinde oluşturulan bu sütunlarda özet bilgi için 1 , detaylı bilgi için 0 değeri görüntülenir.
Örnek: Sorgumuzda farklı sütunlara dikkat edelim. NULL olan değerler bütün toplamı göstermektedir.
Sorgu:
SELECT ProductId,CategoryId,GROUPING(CategoryId),SUM(UnitPrice )
FROM Products
WHERE UnitPrice BETWEEN 10 AND 11
GROUP BY ProductId,CategoryId,UnitPrice
WITH CUBE

Ders 25'e geçebilirsiniz.

5 Mayıs 2012 Cumartesi

23. WITH CUBE Kullanımı

  • GROUP BY ile belirtilen sütunların tüm olası eşleşmelerini özetler.
  • Ayrıntılı olarak bilmemiz gereken GROUP By ile grupladığımız listemizde CUBE ve ROLLUP komutlarıyla ara toplam işlemleri yapıyoruz.
  • CUBE komutunun ROLLUP dan farkı bütün sütünlarında null ile ara toplamlarını vermesidir.
  • Eğer ROLLUP kullanarak denerseniz Genel toplam dışında ProductName üzerinde ara toplamları vermeyecektir.
Örnek: Sorgumuzda her sütun için ayrıntılı ara toplam değerlerini  görmekteyiz.
Sorgu: 
SELECT ProductName,CategoryID, SUM(UnitsInStock) AS 'Miktar'
FROM Products
WHERE LEN(ProductName)<5
GROUP BY ProductName,CategoryId
WITH CUBE



NOT: Dikkat etmeniz gereken CUBE ile bütün sütunların değerlerine göre ve toplam olarak sonuç listesine yansıtıldığını görürsünüz. Stokta 74 birim ürün var. 1. kategoride 39 ve 7. kategoride 35 ürün var. Karmaşıklığı azaltmak için sonuç listesini kısalttım WHERE koşulunu kaldırarak diğer bütün kategori ve ürünleri görebilirsiniz.

Ders 24'e geçebilirsiniz.