Mysql 不同用户的数量';s ID在表中出现了3次以上
我有一个任务要做,有一个具有不同用户ID的表,SQL query应该统计表中出现的不同用户ID的数量超过3次。例如,表中出现的ID号是1、1、2、1、3、4、3、3、1、2、3、4、5、4、5、4,因为数字1、3和4出现在表中超过3次,SQL查询应该只返回一个行号3。 到目前为止,我所做的是:Mysql 不同用户的数量';s ID在表中出现了3次以上,mysql,sql,database,count,Mysql,Sql,Database,Count,我有一个任务要做,有一个具有不同用户ID的表,SQL query应该统计表中出现的不同用户ID的数量超过3次。例如,表中出现的ID号是1、1、2、1、3、4、3、3、1、2、3、4、5、4、5、4,因为数字1、3和4出现在表中超过3次,SQL查询应该只返回一个行号3。 到目前为止,我所做的是: SELECT COUNT(*) counter FROM (SELECT COUNT(id) as counter_id FROM user_id GROUP BY id HAVING COUNT
SELECT COUNT(*) counter
FROM (SELECT COUNT(id) as counter_id FROM user_id GROUP BY id HAVING COUNT(id) >3)
如果不正确,我不确定是否正确。正确的是什么。使用
distinct
inside count(),只从子查询输出中获取id
select count(distinct id) from ( SELECT id
FROM user GROUP BY id
HAVING COUNT(id) >3) a
您是否尝试运行您的查询
SELECT COUNT(*) counter
FROM (SELECT COUNT(id) as counter_id
FROM user_id
GROUP BY id
HAVING COUNT(id) > 3
)
如果是这样,您将得到一个错误,因为FROM
子句中的子查询需要别名。此外,一个表被称为user\u id
,这很奇怪
SELECT COUNT(*) counter
FROM (SELECT COUNT(id) as counter_id
FROM user_id
GROUP BY id
HAVING COUNT(id) > 3
) u
-------^