SQL Server WITH ROLLUP Kullanımı

Herkese merhaba,

Bu bölümde sizlere WITH ROLLUP kullanımından bahsedeceğim.

WITH ROLLUP komutu  istatistiksel sonuçlar çıkartılmasında işe yarayan bir deyimdir. Gruplanmış sütunların hiyerarşisine göre özet satır oluşturma işlemi yapar. Group By deyiminde kullanılmış sütun sayısı kadar gruplama gerçekleştirir. Group By deyiminde verilmiş kolonları sağdan sola doğru gruplar ve her grubun altına özet satır oluşturur. Örnek kullanımı aşağıdaki gibidir.

CREATE TABLE Calisanlar(
BolumNumarasi CHAR(1),
BolumAdi NVARCHAR(100),
KisiAdedi INT
)

--A Bölümü için kodlar


INSERT INTO dbo.Calisanlar
        ( BolumNumarasi ,
          BolumAdi ,
          KisiAdedi
        )
VALUES  ( 'A' , -- BolumNumarasi - char(1)
          N'Hizmet' , -- BolumAdi - nvarchar(100)
          2  -- KisiAdedi - int
        )


INSERT INTO dbo.Calisanlar
        ( BolumNumarasi ,
          BolumAdi ,
          KisiAdedi
        )
VALUES  ( 'A' , -- BolumNumarasi - char(1)
          N'Bilgisayar' , -- BolumAdi - nvarchar(100)
          1  -- KisiAdedi - int
        )

INSERT INTO dbo.Calisanlar
        ( BolumNumarasi ,
          BolumAdi ,
          KisiAdedi
        )
VALUES  ( 'A' , -- BolumNumarasi - char(1)
          N'Muhasebe' , -- BolumAdi - nvarchar(100)
          1  -- KisiAdedi - int
        )

--B BÖlümü için kodlar

INSERT INTO dbo.Calisanlar
        ( BolumNumarasi ,
          BolumAdi ,
          KisiAdedi
        )
VALUES  ( 'B' , -- BolumNumarasi - char(1)
          N'Hizmet' , -- BolumAdi - nvarchar(100)
          4  -- KisiAdedi - int
        )


INSERT INTO dbo.Calisanlar
        ( BolumNumarasi ,
          BolumAdi ,
          KisiAdedi
        )
VALUES  ( 'B' , -- BolumNumarasi - char(1)
          N'Bilgisayar' , -- BolumAdi - nvarchar(100)
          3  -- KisiAdedi - int
        )

INSERT INTO dbo.Calisanlar
        ( BolumNumarasi ,
          BolumAdi ,
          KisiAdedi
        )
VALUES  ( 'B' , -- BolumNumarasi - char(1)
          N'Muhasebe' , -- BolumAdi - nvarchar(100)
          6  -- KisiAdedi - int
        )


--1. Örnek

SELECT  BolumNumarasi ,
        SUM(KisiAdedi) AS Toplam
FROM    dbo.Calisanlar
GROUP BY BolumNumarasi
        WITH ROLLUP

--2. Örnek

SELECT  BolumNumarasi ,
        BolumAdi ,
        SUM(KisiAdedi) AS Toplam
FROM    dbo.Calisanlar
GROUP BY BolumNumarasi ,
        BolumAdi
        WITH ROLLUP

Özetlenmiş verileri 1. örnekte sadece bölüm numarasına göre getirirken, ikincisinde hem bölüm adı hem de bölüm numarasına göre getirmiştir.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

SQL Server Eğitimleri Kanalına Abone Olun

Şunlar makaleler de hoşunuza gidebilir

Ads Blocker Image Powered by Code Help Pro
Reklam Eklentisi Kullanıyorsunuz

Lütfen bizlere destek için reklam eklentisi olmadan sitemizi ziyaret edin.

Şimdiden teşekkür ederiz.