SQL Server’da Pivot Table Kullanımı

Merhaba,

Bu içeriğimizde; SQL’de sorgu sonucu elde ettiğimiz tablo verilerini görsel açıdan daha anlamlı ve okunabilir bir şekilde düzenleyen harika bir fonksiyon olan Pivot Table’ın kullanımına değineceğiz.

Pivot Table, sorgu sonucu gelen tablo üzerindeki verileri belirli bir satırdaki veriler merkezinde kolonlara ayırarak yatay olarak şekillendiren ve verisel karşılık olarakta bu kolonlaştırılan satırlara denk gelen değerleri basan bir raporlama fonksiyonudur. Bu şekilde yığın verilerden anlamlı özet tablolar çıkarmamızda oldukça yardımcı olmaktadır.

Bir sorguyu Pivot Table ile raporlaştırabilmek için aşağıdaki prototipte olduğu gibi hareket edilmelidir;

SELECT * FROM
(
	SELECT X, COUNT(*) Y FROM [Table1]
	GROUP BY X
) Table2
PIVOT
(
	SUM(Y) FOR X IN([VALUE1], [VALUE2], [VALUE3], [VALUE4], [VALUE5],...)
) PivotTable

Dikkat ederseniz eğer subqueryden gelen verileri externalquery ile “Table2” adında elde etmekte ve “PIVOT” fonksiyonu çağrılarak “IN” parametresine girilen “X” kolonundaki değerler için oluşturulacak kolonlara özel “Y” toplamı basılacaktır. Anlayacağınız “X” kolonunun verilerine özel yatay bir tablo söz konusu olacaktır.

Konuyu örneklendirmek adına “North-Wind” veritabanı üzerindeki “Satislar” tablosunu ele alalım;
SQL Server'da Pivot Table Kullanımı

Dikkat ederseniz “Satislar” tablosunda “SevkSehri” ve “SevkUlkesi” olmak üzere iki adet kolon mevcuttur.

Şimdi…

Gün geldi, şöyle bir soru ve ihtiyaçla karşılaşıldı diyelim;

Hangi şehirde kaç adet satış yapılmıştır?

Bu soruya karşılık olarak yapabileceğimiz en mantıklı hamle aşağıda olduğu gibi şehirleri gruplayıp yapılan işlerin adedini almaktır.
SQL Server'da Pivot Table Kullanımı

İstek ve ihtiyaca dönük doğru ve gereken sonuç elde edildiği için amacımıza ermiş bulunmaktayız. Ama bu tabloyu yatay bir vaziyette ve direkt olarak şehirsel bazda kolonlardan oluşan bir rapor şeklinde elde etmek istiyorsak eğer işte burada devreye Pivot Table girecektir.
SQL Server'da Pivot Table Kullanımı
Görüldüğü üzere anlaşılabilir, okunabilir ve harika bir rapor elde etmiş bulunmaktayız(Bu örnekte tüm şehirler kolon olarak belirtilmemiştir).

Makalemizin içeriğini zenginleştirmek ve ilgili konuya daha çok pratiksel açı kazandırmak maksadıyla bir örnek üzerinde daha inceleme yapmayı tercih ediyorum.
SQL Server'da Pivot Table Kullanımı
Yukarıdaki ekran görüntüsüne göz atarsanız eğer hangi personelin hangi ülkeye kaç satış yaptığını yatay boyutta sonuç veren sorgu yazılmış bulunmaktadır.

Subquery de yapılan inner join işlemi neticesinde elde edilen personel bilgileri, ülke bilgisine özel kolonlara karşılık toplam yapılan satış bilgisini basacak Pivot işlemi esnasında sıkıntısız bir şekilde sonuç tablosuna eklenmiştir.

Bu harika SQL fonksiyonu hakkında bilmenize değer son husus ise büyük boyutlu verilerde performans açısından oldukça maliyetli olmasıdır. Eğer ki performans söz konusu olan ama bir yandan da milyonlarca veri üzerinde işlem yapmanızı gerektiren raporsal çalışmalarınızda bu maliyeti göz önünde tutarak hareket etmenizi tavsiye ederim.

Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…

Bunlar da hoşunuza gidebilir...

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

Copy Protected by Chetan's WP-Copyprotect.