• 14-06-2016, 16:17:16
    #1
    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.
  • 14-06-2016, 19:40:56
    #2
    SELECT COUNT(kullanici) AS sonuc FROM table group by tarih
    işinizi görecektir
  • 14-06-2016, 19:51:00
    #3
    öncelikle teşekkürler bu şekilde o yıla ait bütün kullanıcıları yazıyor

    yani ;

    2016 yılı içerisinde 4 kullanıcı var
    2015 yılı içerisinde 3 kullanıcı var.


    benim istediğim

    2016 Yılı İçerisinde
    3 tane XXX Kullanıcısı var
    1 Tane BBB Kullanıcısı var

    şeklinde
  • 14-06-2016, 20:33:16
    #4
    SELECT COUNT(kullanici) AS sonuc FROM table WHERE tarih = '2016'
  • 14-06-2016, 21:04:40
    #5
    Dipnotta belirtmiştim fakat yazayım tekrar

    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.

    ( yıl örnek olarak verilmiştir yıl çekilmiyor , daha karışık bir zamanlama eliyorleiyor
  • 14-06-2016, 21:40:24
    #6
    darkymarky adlı üyeden alıntı: mesajı görüntüle
    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