表格中出现的不同用户ID的数量超过3次

时间:2019-07-03 10:26:40

标签: mysql sql database count

我有一个任务要做,有一个具有不同用户ID的表,SQL查询应该计算该表中出现的不同用户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(id) >3)

我不确定是正确的还是正确的。

2 个答案:

答案 0 :(得分:0)

在count()中使用distinct并仅从子查询输出中获取ID

select count(distinct id) from ( SELECT id  
FROM user GROUP BY id 
HAVING COUNT(id) >3) a

答案 1 :(得分:0)

您是否尝试过运行查询?

SELECT COUNT(*) counter
FROM (SELECT COUNT(id) as counter_id
      FROM user_id
      GROUP BY id
      HAVING COUNT(id) > 3
     )

如果是这样,您会得到一个错误,因为FROM子句中的子查询需要一个别名。另外,一个表被称为user_id很奇怪。

SELECT COUNT(*) counter
FROM (SELECT COUNT(id) as counter_id
      FROM user_id
      GROUP BY id
      HAVING COUNT(id) > 3
     ) u
-------^