SQL Tablomuz
kullanıcı - tarih
XXX - 2016
XXX - 2016
BBB - 2016
XXX - 2015
b - .. 2015
select from table group by tarih
yaparak aşağıdaki hale geliyor
XXX - 2016
BBB - 2015
Fakat benim istediğim tam çıktı yukarıdaki tabloya göre aşağıdaki gibidir.
2016 Yılı İçerisinde
3 tane
XXX Kullanıcısı var
1 Tane
BBB Kullanıcısı var
2015 Yılı İçerisinde
1
XXX var
1
b var
Bu nasıl yapılabilir ?
Dipnot : Tarih concat , unixtime karıştırarak çekip grupladım bu yüzden ikinci bir sorgu oluşturup where = ile eşleştirme yapıp count alamıyorum.
Öncelikle
select from table group by tarih, kullanici
bu şekilde dener misiniz istediğiniz sonucu verecek mi ?
Eğer üstteki şekilde istediğiniz sonucu alamazsanız aşağıda ki gibi iç içe selectler ile çözebileceğinizi düşünüyorum. Deneme imkanım olmadı ama fikir vermesi açısından aşağıda ki gibi bir sorgu üzerinde çalışabilirsiniz.
SELECT id, kullanici, tarih,
(
select count(*)
from tablo as t2
where t1.kullanici = t2.kullanici
group by kullanici
) as uye_sayisi
FROM tablo as t1
GROUP BY tarih