Veritabanı tablosunda kaç adet beğendim-beğenmedim kayıt sayısını bulma
0 – beğenmedim
1 – beğendim
2 – kararsız
Eğer bütün kayıtlar sadece bir tablo sırasında ise, yani tablomuz aşağıdaki gibi ise
kayit
——-
1
2
1
0
1
1
…
2
SQL sorgumuz aşağıdaki gibi olacaktır.
SELECT SUM(IF(kayit = 0, 1, 0)) as begenmedim, SUM(IF(kayit = 1, 1, 0)) as begendim, SUM(IF(kayit = 2, 1, 0)) as kararsiz FROM tablo
Bazen kayıtlarımız farklı sıralarda olabilir. Örneğin,
Ford Mazda Anadol
—- —– ——
1 1 1
0 1 1
1 1 2
2 2 0
1 2 1
1 0 1
0 1 2
.. .. ..
1 0 1
Öyleyse, SQL sorgumuzu şöyle yazabiliriz.
SELECT SUM(IF(Ford = 0, 1, 0)) as Ford, SUM(IF(Mazda = 0, 1, 0)) as Mazda, SUM(IF(Anadol = 0, 1, 0)) as Anadol FROM tablo UNION SELECT SUM(IF(Ford = 1, 1, 0)) as Ford, SUM(IF(Mazda = 1, 1, 0)) as Mazda, SUM(IF(Anadol = 1, 1, 0)) as Anadol FROM tablo UNION SELECT SUM(IF(Ford = 2, 1, 0)) as Ford, SUM(IF(Mazda = 2, 1, 0)) as Mazda, SUM(IF(Anadol = 2, 1, 0)) as Anadol FROM tablo
Eğer sadece 0(beğenmedim) ve 1(beğendim) sorgulatmak istiyorsak, aşağıdaki sql sorgusunu kullanabiliriz.
SELECT SUM(IF(Ford = 0, 1, 0)) as Ford, SUM(IF(Mazda = 0, 1, 0)) as Mazda, SUM(IF(Anadol = 0, 1, 0)) as Anadol FROM tablo UNION SELECT SUM(IF(Ford = 1, 1, 0)) as Ford, SUM(IF(Mazda = 1, 1, 0)) as Mazda, SUM(IF(Anadol = 1, 1, 0)) as Anadol FROM tablo