像Mysql count frequency这样的帖子在获取MySQL表中字段的频率列表时非常有用。
如果我想设置一个阈值,那么只有符合条件的某些频率才会被选中"或显示。例如
SELECT age, COUNT(*) AS freq FROM ages GROUP BY age WHERE COUNT(*) > 20
但是上面的命令会出错。什么是正确的命令?
答案 0 :(得分:0)
您可能希望在此处使用HAVING
子句:
SELECT age, COUNT(*) AS freq
FROM ages
GROUP BY age
HAVING COUNT(*) > 20;
HAVING
扮演与WHERE
类似的角色,但前者作用于群组或记录聚合,而后者则作用于个别记录。由于您要限制记录组的行为,因此在执行GROUP BY
后,您希望使用HAVING
。
答案 1 :(得分:0)
你必须使用HAVING,但你必须在新字段“freq”上进行过滤:
SELECT age, COUNT(*) AS freq
FROM ages
GROUP BY age
HAVING freq > 20;
答案 2 :(得分:0)
将您的where子句移到您的小组之前:
SELECT
age,
COUNT(*) AS freq
FROM ages
WHERE COUNT(*) > 20
GROUP BY age