2016-07-06 68 views
1

分组,我有以下SQL表伯爵独有的天用户

|user|log_date   | 
| 2 |2016-06-23 10:55:52 | 
| 2 |2016-06-23 10:55:54 | 
| 2 |2016-06-24 10:53:54 | 
| 2 |2016-06-24 10:54:54 | 

等与许多其他用户和log_dates。我想要检查的整个月:

where left(log_date,7)="2016-06" 

但我想每天只计算一天。所以在这个例子中我的表的结果应该是:

|user|count of unique days| 
| 2 |   2   | 

我希望它被用户分组。所以对于表格中的每个用户,我都想要统计独特的日子。

有人可以给我一个提示吗?

回答

1

写作这种方式允许使用指标的条件......

SELECT t.user 
    , COUNT(DISTINCT DATE(t.log_date)) unique_days 
    FROM my_table t 
WHERE t.log_date BETWEEN '2016-06-01 00:00:00' AND '2016-06-31 23:59:59' -- or t.log_date >= '2016-06-01 00:00:00' AND t.log_date < '2016-07-01 00:00:00' 
GROUP 
    BY t.user; 

(不知道为什么史记修正后删除他们的答案它)

0

试试这个:

select 
    user, 
    count(distinct day(log_date)) as `count of unique days` 
from yourtable 
where left(log_date, 7) = '2016-06' 
group by user 

SQLFiddle Demo