Kayıtlar

gruplama işlemi etiketine sahip yayınlar gösteriliyor

UNPIVOT Table

Resim
Pivot table konumuzun devamı olan unpivot table işlemini incelemeye başlıyoruz. Eğer pivot table oluşturma, bu tabloları kullanma işlemi sık sık tekrarlanıyorsa performans sağlanması ve zaman kazandırması açısından pivot table işleminin sonucu başka bir tabloya yazılır, artık sorgulama bu tablo üzerinden yapılır. Bu gibi durumlarda bazen de pivot tablonun eski haline döndürülmesi istenebilir ve o zaman devreye unpivot table işlemi girer. Hemen örneğimize başlayalım. Pivot table konumuzdaki örnek sorgumuz üzerinden gideceğiz. Pivot table işleminin sonucunun tutulacağı tabloyu oluşturuyoruz: create table pivottable(Az int, Ca int, Tx int); Sorgu sonucunu tabloya yazıyoruz: insert into pivottable select * from ( select sp.StateProvinceCode from Person.Address a inner join Person.StateProvince sp on a.StateProvinceID=sp.StateProvinceID )k PIVOT ( count(StateProvinceCode) for StateProvinceCode IN([AZ],[CA],[TX]) ) AS pvt select * from pivottable Şimdi unpivot işlemin...

PIVOT Tablo

Resim
Group by ifadesi ile verilerimiz satır bazında gruplanır, bi'nevi özetlenir. Bazı durumlarda bu satır bilgilerinin sütuna dönüştürülmesi gerekebilir. Bu işlem için sorgu sonucunda dönen kayıt setinin satırlarını sütuna çevirme tekniğine pivot tablo denmektedir. Örneğin aşağıdaki sorguda eyalete göre gruplama yapıp AZ,CA,TX kodlu eyaletlerde bulunan personel sayısının görüntüledik.  (veritabanı adventureworks) select sp.StateProvinceCode,count(sp.StateProvinceCode) Adet from Person.Address a inner join Person.StateProvince sp on a.StateProvinceID=sp.StateProvinceID where sp.StateProvinceCode in ('AZ','CA','TX') group by sp.StateProvinceCode Sorgumuzu pivot tabloya çevirme işleminde ise öncelikle gruplama ifadelerini sorgumuzdan çıkartıp, sorgumuzu bir altsorgu haline getiririz. select * from ( select sp.StateProvinceCode from Person.Address a inner join Person.StateProvince sp on a.StateProvinceID=sp.StateProvinceID )k Daha sonrasında yuka...