Group by çok sık kullanılan bir sql cümleceğidir. Group by ve count kullarak grupladığımız verilerin adet sayısını rahatlıkla bulabiliyoruz. Peki sayısını bilmek istediğimiz durumlar birden fazla ve bir şarta bağlı ise ne yapabiliriz?
Bir db tablosu düşünün bu tabloda stokda bulunan maddeler ve bunların status durumları var. Sizde hangi status'dan kaç tane olduğunu bulmak istiyorsunuz. Bu ve buna benzer durumlarda aşağıda ki yapıda ki sql cümleciklerini kullanabilirsiniz.
SELECT StatusName ,
sum(case when StatusId = 1 then 1 else 0 end) as Status1,
sum(case when StatusId = 2 then 1 else 0 end) as Status2,
sum(case when StatusId = 3 then 1 else 0 end) as Status3,
sum(case when StatusId = 4 then 1 else 0 end) as Status4,
sum(case when StatusId = 5 then 1 else 0 end) as Status5
from tableName WHERE StatusName IS NOT NULL
group by StatusName
order by StatusName
Comments