SQL'de WITH ROLLUP ve WITH CUBE Kullanımları

  • GROUP BY ile bir toplama işlevi kullandığımızda her farklı değer için sadece sonuç satırı görüntülenir. Gruplandırdığımız değerlerin detaylarını farklı komutlar kullanarak görüntüleyebiliriz.
  • ROLLUP Grup değerlerini özetlemek için kullanılır.
  • CUBE GROUP BY ile belirtilen sütunların tüm olası eşleşmelerini özetler.
  • CUBE komutunun ROLLUP'dan farkı bütün sütünlarında null ile ara toplamlarını vermesidir.
NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu 

Örnek Sorgu 1: SELECT ProductID AS 'Ürün ID', OrderID AS 'Sipariş ID', SUM(quantity) AS 'Toplam Sipariş'  FROM [order details]  WHERE OrderID < 10250
GROUP BY OrderID, ProductID WITH CUBE ORDER BY OrderID, ProductID
(Sipariş ID 10250’den küçük olan kayıtların ve ürünlerin detaylı toplamlarını listeleyelim.)

Örnek Sorgu 2: SELECT ProductID AS 'Ürün ID',OrderID AS 'Sipariş ID', SUM(quantity) AS 'Toplam Sipariş'  FROM [order details] WHERE OrderID < 10250
GROUP BY ProductID, OrderID WITH ROLLUP ORDER BY ProductID, OrderID
(Sipariş ID 10250’den küçük olan kayıtların ve ürünlerin detaylı toplamlarını listeleyelim.)