Merhaba bu yazımda sizlere satırları sutun gibi gösterebilen, inanılmaz pratik Pivot Komutunu anlatacağım.
MSSQL veritabanında ” pivot komutu ” kullanmanın mantığını anlamak için öncelikle düz listeleme yapan kodumuzu buraya ekliyorum.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
select * from (select 1 adet, 'mavi' renk union select 19 adet , 'yesil' renk union select 3 adet , 'beyaz' renk union select 15 adet , 'mavi' renk union select 10 adet , 'yesil' renk union select 4 adet , 'mavi' renk union select 7 adet , 'beyaz' renk union select 1 adet , 'yesil' renk ) src |
Eğer yukarıdaki listelemeyi pivot kullanımı olmadan yapmış olsaydık sonuç olarak alacağız çıktı resimdeki gibi olacaktı.
Bu listede şunu yapmak aklımızda geldiğinde ne yapacaktık diye soruma başlayayım. Soru şu : Maviler kaç adet, yeşiller kaç adet , yani her renk kaçar adetmiş ?
Birde çıktıları kriterleyeceğim renk isimleri sutun başlığı olsun istiyorum 🙂 Ne çok şey istiyorum değil mi ? Ama sağolsun MS-SQL geri çevirmiyor 😉
Ve şimdi isteğimize cevap veren sorgu ;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
select * from (select 1 adet, 'mavi' renk union select 19 adet , 'yesil' renk union select 3 adet , 'beyaz' renk union select 15 adet , 'mavi' renk union select 10 adet , 'yesil' renk union select 4 adet , 'mavi' renk union select 7 adet , 'beyaz' renk union select 1 adet , 'yesil' renk ) src pivot ( sum(adet) for renk in ([mavi],[beyaz],[yesil] ) ) piv; |
Sadece pivot kısmı yukarıdaki sorgudan farklı ve çıktı tam istediğimiz gibi 🙂
Umarım kısa ve faydalı bir anlatım olmuştur, daha ileri seviye kullanımları sizlerin deneyim ve isteklerinize göre artık gelişecektir.