Ilk once satisi 1 ve 2 olanlari ayri kolonlara ayiriyorsun (pivoting'in ilk adimi gibi). Daha sonra hepsine 1 yazdirdigin icin topluyorsun (count dersen 0'lari da sayar).Kod:select isim , sum(satis_1) , sum(satis_2) from (select isim , if(satis=1,1,0) satis_1 , if(satis=2,1,0) satis_2 from satis s) s group by isim
Ikinci bir yol da
Burada da ilk once sayma islemini yapiyoruz, daha sonra iki ayri kolonda sayilmis veriyi bir alttaki 0'la topluyoruz.Kod:select isim , sum(satis_1) , sum(satis_2) from (select isim , if(satis=1,count(isim),0) satis_1 , if(satis=2,count(isim),0) satis_2 from satis s group by isim, satis) s group by isim
Ilki daha fazla veriyi isler. Ikincisiyse daha ilk adimda sayma islemini yaptigi icin, dis select'e sadece bos satirlari toplama isi verir (icteki sorgulari tek tek calistirirsan demek istedigim daha anlasilir olur). Hangisini kullanacagin sana kalmis. Eger sayma islemi disinda baska isler de yapiyorsan, ilki daha kullanisli olur sanirim, ama dedigim gibi ikincisi daha performansli olacaktir.


Konu Adresi (URL)
About LinkBacks
Alıntı Yaparak Yanıtla
