COMPUTER ENGINEER

Örneklere git
Blog
SQL Server / T-SQL6 dk çalışma
18/ 65

Sorgulama ve aggregation

ROLLUP, CUBE ve GROUPING SETS

Detay, ara toplam ve genel toplam.

AnlaÖrneği inceleKendin uygula

Kavramı anlayalım

GROUPING SETS aynı sorguda birden fazla gruplama seviyesi üretir. ROLLUP hiyerarşik ara toplamlar, CUBE bütün gruplama kombinasyonları için toplamlar oluşturur. Boyut sayısı arttıkça CUBE sonucu hızlı büyüyebilir; gerekli seviyeleri açıkça belirtmek daha okunabilirdir.

Toplam satırlarında kullanılan NULL ile verinin gerçek NULL değerini karıştırma. GROUPING(Column), sütunun toplam seviyesi nedeniyle dışarıda bırakılıp bırakılmadığını söyler. Rapor aracı bu bilgiyi kullanıp toplam satırını doğru etiketleyebilir.

NERESİNDE KULLANIRSIN?

Bir raporda kategori toplamı ve genel toplamı birlikte göstermek için.

SIK YAPILAN HATA

COALESCE ile her NULL değeri “Toplam” etiketi yapmak.

01 / UYGULAMA

Aynı konu. Üç farklı derinlik.

T-SQL / SQL Server 2019+
SELECT Category, COUNT(*) AS Products FROM lab.Product GROUP BY ROLLUP(Category);

Kategori sayımlarına ek olarak yedi ürünün genel toplamını üretir.

Bu sayfa SQL çalıştırmaz. Örnekleri indirilebilir SqlStudioLab veritabanında, SSMS’de uygula. Geçici tablo örneklerini yeniden çalıştırırken yalnız ilgili #tabloyu temizle. VIEW, procedure ve function örnekleri lab’da kalıcı nesne oluşturur; üretim bağlantısı kullanma.

02 / SIRA SENDE

Önce kendin dene.

Şehir bazındaki müşteri sayısını genel toplamla birlikte getir.

Çözümü ve açıklamasını göster
Açıklamalı çözüm
SELECT City, COUNT(*) AS Customers, GROUPING(City) AS IsTotal FROM lab.Customer GROUP BY ROLLUP(City);

Genel toplam 6’dır; GROUPING gerçek veri NULL’larını toplam işaretinden ayırır.