如何用SQL统计各唯一ID的条目数并过滤条目数≤10的记录?
解决SQL统计用户提交条目数的问题
你的SQL语句存在两个关键问题:
- WHERE子句无法直接使用聚合函数(如COUNT),因为WHERE是在分组之前过滤原始行数据,而聚合函数是分组后计算的结果,分组后的过滤需要用HAVING子句实现。
- SELECT列表中的
entry字段既不是分组列(你按ID分组),也未通过聚合函数处理,不符合SQL分组规则(多数数据库会直接报错),且你的需求是统计提交数量,该字段无需出现在结果中。
正确的SQL语句如下:
SELECT id, COUNT(entry) AS entry_count FROM your_table_name GROUP BY id HAVING COUNT(entry) <= 10;
语句说明:
GROUP BY id:将同一用户ID的所有提交记录归为一组。COUNT(entry):统计每组内的条目数量,用AS entry_count给统计结果设置一个易读的别名。HAVING COUNT(entry) <= 10:对分组后的统计结果进行过滤,仅保留提交数≤10的用户。
内容的提问来源于stack exchange,提问作者M.H
相关产品推荐
相关产品推荐

