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.

734 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!