2011-02-23 14 views
6

aşağıdaki (MySQL) tablo çağrıda "tweet'ler": Ben MySQL haftanın her bir günü tweet sayısını dönen istiyorumÖğelerin haftanın gününe göre nasıl sayılır ve gruplanır?

tweet_id created_at 
--------------------- 
1   1298027046 
2   1298027100 
5   1298477008 

; Yukarıdaki verileri alarak o dönmelidir:

SELECT 
    COUNT(`tweet_id`), 
    WEEKDAY(FROM_UNIXTIME(`created_at`)) 
FROM tweets2 
ORDER BY WEEKDAY(FROM_UNIXTIME(`created_at`)) 

Ancak bu döndürür::

Wednesday 1 
Friday 2 

Şimdi (hafta indeksi, değil tam adı gününü dönmelidir) Aşağıdaki sorgu var

(Veritabanında toplam 7377 tweet var). Neyi yanlış yapıyorum?

+0

created_at – reggie

cevap

12
SELECT 
COUNT(`tweet_id`), 
DAYNAME(FROM_UNIXTIME(created_at)) AS Day_Name1 
FROM tweets2 

GROUP BY Day_Name1 
ORDER BY Day_Name1; 
+0

Bu harika, teşekkürler :) – Pr0no

+2

Sözdizimi hatası, satır 3 üzerinde çok fazla kapatma parantez. – Citricguy

2

Bir sayınız var, ancak bir grubunuz yok. Sen sadece bir genel toplamı almak böylece hafta gündüz gruplama değil bir

GROUP BY WEEKDAY(FROM_UNIXTIME(`created_at`)) 
+0

tarafından (FROM_UNIXTIME ('created_at')) yerine hafta içi fonksiyonunu (FROM_UNIXTIME (' created_at')) fonksiyonunu ve grup DAYNAME kullanmak hızlı bir cevap için teşekkür ederim: Bu deneyin! – Pr0no

1

içermelidir.

SELECT 
    COUNT(`tweet_id`), 
    WEEKDAY(FROM_UNIXTIME(`created_at`)) 
FROM tweets2 
GROUP BY WEEKDAY(FROM_UNIXTIME(`created_at`)) 
ORDER BY WEEKDAY(FROM_UNIXTIME(`created_at`)); 
İlgili konular