2013-10-15 63 views
0

我有一个表用户访问多集团通过争论

id | visitorid | date  | .. 
1 | 12345  | 01-01-2013 
2 | 12345  | 01-01-2013 
3 | 12345  | 01-01-2013 
4 | 99999  | 01-01-2013 
... 
35 | 243246 | 01-02-2013 
.. 

我想要得到的一个月份独立访问,所以像这样的

day | u_visits 
1 | 33 
2 | 42 
3 | 7 

首先输出我想组由visitorid(每天),然后在每月的当天分组。但是,当我试图通过两个组合,结果是完全错误的:

SELECT day(date) AS days, COUNT(id) FROM table WHERE ... GROUP BY visitorid, days 

任何人有一个想法是什么错?

+0

作为一种“更好”/“更安全”的做法,养成对SELECT和非聚集函数中的每个列和别名进行GROUP化的习惯。在你的情况下,不要通过visitorid进行分组,除非它是SELECT子句中的字段/别名。 – AgRizzo

回答

0
SELECT 
    DAY(date) AS days, 
    COUNT(DISTINCT(visitorid)) AS `Unique visits` 
FROM visits 
GROUP BY days 

在这里,有一个fiddle

+0

不错,谢谢你,它的工作 – vtni

+0

如果它能很好地处理你的问题,请将答案标记为已接受。 – leon