Mysql按第一个表的日期分组,并按与第二个表不同的字段计数
我有一张用户表 和一张分组表 我需要为每个创建的日子统计每个网站的数量,所以上面的数字会给我2018-06-06年google.com的2个 即 我将返回的行按日期分组,但使用以下查询,每行的计数都是1Mysql按第一个表的日期分组,并按与第二个表不同的字段计数,mysql,Mysql,我有一张用户表 和一张分组表 我需要为每个创建的日子统计每个网站的数量,所以上面的数字会给我2018-06-06年google.com的2个 即 我将返回的行按日期分组,但使用以下查询,每行的计数都是1 select count(distinct users.website), groups.created from user_groups as groups join users on users.id = groups.user_id group by groups.created
select count(distinct users.website), groups.created
from user_groups as groups
join users on users.id = groups.user_id
group by groups.created
所以我很简单
count(distinct users.website) | created
1 2018-06-06
1 2018-06-06
1 2018-06-06
1 2018-09-09
试试下面
试一试
应该有用 还只是告诉我所有计数=1:@yoyoma,用一个演示修改了答案-你现在可以检查了。我想,他对数据有问题,他所做的查询甚至与他输出的结果集不匹配,我已经测试过了。也许他必须尝试按TRIMwebsite分组,TRIMcreated?删除计数中的distinct。它将删除所有重复项-因此,如果google.com多次出现,它仍将被计算为一个onlyOr,您可以使用count distinct users.id
website | count | date
google.com 2 2018-06-06
yahoo.com 1 2018-06-06
yahoo.com 1 2018-09-09
select count(distinct users.website), groups.created
from user_groups as groups
join users on users.id = groups.user_id
group by groups.created
count(distinct users.website) | created
1 2018-06-06
1 2018-06-06
1 2018-06-06
1 2018-09-09
select website,created,count(website) as cnt
from groups t2 join users t1 on t1.id = t2.userid
group by website, created
Select distinct(groups.created),count(distinct(users.website))
from user_groups as groups
join users on users.id = groups.user_id
group by groups.created