2012-09-17 15 views
1

我有一個用遊戲表的小遊戲數據庫答案: 每個用戶每天可以玩和回答最多2次, 表答案是這樣結構化的:每天從數據庫中玩遊戲的用戶數

UID | ANSWER | DATE

我願做一個查詢來獲取多少用戶玩,每天至少一次。 我做了這樣的事情,但這不起作用。

SELECT Day(date) as n, 
     Dayname(date) as m, 
     uid,    
     COUNT(uid) as c 
FROM answers 
WHERE Year(date) = '2012' 
GROUP BY uid HAVING count(*) <=2 //COUNT user who played at least 2 times per day 
GROUP BY n //group by day 
ORDER BY n 

,我想有這樣的結果:

Friday | 9-5-2012 | 1254

Saturday | 10-5-2012 | 1427 ...

讚賞任何幫助...

+1

不會「每天至少玩過一次」已經是該uid當天有條目嗎?或者你是否意味着「誰每天玩一次以上」? – Fildor

回答

0

而不是兩個group by子句,使用一天中的一組:

select day(date) as d 
,  month(date) as m 
,  count(distinct uid) as c 
from answers 
where year(date) = '2012' 
group by 
     day(date) 
,  month(date) 
having count(*) > 1 
+0

如果這就是你想要計算的數值,不要'用uid'進行分組,而最初的問題要求'每天至少一次',而不是'至少2'。 – paul

+0

@paul:好點,回答更新 – Andomar

+0

Thx傢伙現在就像一個魅力!我對SQL的瞭解相當有限...... Thx爲您提供幫助! –