Mysql 分组,并具有;“未知列”;
我有一张这样的桌子:Mysql 分组,并具有;“未知列”;,mysql,sql,Mysql,Sql,我有一张这样的桌子: ----------------------------------------- id | user_id | done | created_at ----------------------------------------- 1 | 5 | 0 | 2017-12-23 23:28:00 1 | 2 | 1 | 2017-12-23 23:28:00 1 | 5 | 1 | 2017-12-23 23:28
-----------------------------------------
id | user_id | done | created_at
-----------------------------------------
1 | 5 | 0 | 2017-12-23 23:28:00
1 | 2 | 1 | 2017-12-23 23:28:00
1 | 5 | 1 | 2017-12-23 23:28:00
1 | 10 | 0 | 2017-12-23 23:28:00
1 | 7 | 0 | 2017-12-23 23:28:00
1 | 5 | 1 | 2017-12-23 23:28:00
我想要得到的是至少有一个done
为0的用户计数(注意,user\u id列值可以重复多次)
我试过这个:
选择count(*)作为用户组中按用户id have done=0计算的总和
但它在having子句中表示未知列done
如何使用MySQL获取正确的数据?要获取至少有一个done=0的用户,可以使用以下命令
select count(*) as sum
from users
group by user_id
having sum(done=0) > 0
要获取至少有一条记录的所有用户的计数,其中done=0
select count(distinct user_id)
from users
where done=0;
试试这个
使用where
而不是have
select count(*) as sum from users where done=0 group by user_id
您应该使用
where
而不是have
,因为have是用于聚合函数条件的。我编辑了一个问题,“user\u id”值可以在每个表中重复多次,如上所示返回两行,每行的值不同,两行都不正确:(哪个输出返回两行,每个行的值不同,但都不正确:(@HorusCoding在您的问题中包括您的预期数据,它应该与您的示例数据相关,对于上面的查询,它将为您提供至少有一条记录为done=0的用户的计数参见此处的演示。)