Mysql 统计按用户分组的唯一天数

Mysql 统计按用户分组的唯一天数,mysql,sql,group-by,sum,Mysql,Sql,Group By,Sum,我有下面的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 | 等等,与许多其他用户和日志日期。我要检查的是整个月: where left(log_date,7)="2016-06" 但我想每天只数一次。因此,本例中我的表的结果应该是: |user|count

我有下面的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 |
等等,与许多其他用户和日志日期。我要检查的是整个月:

where left(log_date,7)="2016-06"
但我想每天只数一次。因此,本例中我的表的结果应该是:

|user|count of unique days|
| 2  |         2          |
我希望它按用户分组。所以,对于表中的每个用户,我想计算唯一的天数

有人能给我一个提示吗?

试试这个:

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

以这种方式写入条件允许使用索引

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;
不知道为什么Sagi在更正后删除了他们的答案