SQL Server’da UnPivot Table Kullanımı

Merhaba,

Önceki yazılarımdan SQL Server’da Pivot Table Kullanımı başlıklı içeriğimde SQL Server’da veriler üzerinden anlam ve okunabilirlik açısından güçlü rapor sunabilmemizi sağlayan Pivot Table’ın nasıl kullanıldığını incelemiştik. Bu içeriğimizde ise Pivot neticesinde sonuç dönen sorgularımızın kolonlarını ve o kolonlara karşılık gelen sütünları dikey olarak birleştirmeyi ve sonucu iki kolona indirgeyerek normal tablo formatında düzenlemeyi sağlayan UnPivot Table’ın kullanımını inceleyeceğiz.

Bir sorguyu UnPivot Table ile normal tabloya getirebilmek için aşağıdaki prototipte olduğu gibi çalışma gerçekleştirilecektir.

SELECT * FROM (
	SELECT Kolon1, Kolon2, Kolon3, Kolon4 FROM Table1 -- Pivot Table
) Pivot_Table
UNPIVOT
(
	X FOR Y IN(Kolon1, Kolon2, Kolon3, Kolon4)
) UNPivot_table

Yukarıdaki kod bloğuna dikkat edilirse eğer subquery olan ve netice olarak pivot table dönen sorgudaki her bir kolon UnPivot fonksiyonu içerisinde IN fonksiyonu tarafından değer olarak belirtilmiştir. İşte bu değerlerin bulunduğu kolon adı “Y” olarak isimlendirilmiştir. Tüm bunlara karşılık gelecek olan denk satırlardaki değerler ise “X” kolonu altında dikey bir şekilde ilgili kolonların karşılarına yerleştirilecektir.

Anlayacağınız; Pivot türevse, UnPivot o türevin integralidir.

Şimdi North-wind veritabanı üzerinde aşağıdaki gibi elde edilmiş bir Pivot table’ı ele alarak örneklendirme yapalım.
SQL Server'da UnPivot Table Kullanımı
Yukarıdaki görseli incelerseniz eğer mavi ile çizilmiş kolonlardaki verileri dikey eksende sıralatacağız ve yanlarına kırmızı ile çizilmiş satırdaki değerleri hizalı bir şekilde yerleştireceğiz.

SQL Server'da UnPivot Table Kullanımı
Gördüğünüz gibi bir önceki vermiş olduğum sorguyu burada subquery şeklinde değerlendirerek UnPivot fonksiyonunu üzerinde uygulamış olduk.

Eğer ki bu tarz bir yapılanmada daha okunabilir bir çalışma gerçekleştirmek istiyorsanız aşağıdaki gibi “WITH AS” kalıbıylada çalışabilirsiniz.
SQL Server'da UnPivot Table Kullanımı

İlgilenenlerin faydalanması dileğiyle…

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.