Mysql计数频率 - 具有阈值

时间:2018-06-06 15:31:46

标签: mysql frequency

Mysql count frequency这样的帖子在获取MySQL表中字段的频率列表时非常有用。

如果我想设置一个阈值,那么只有符合条件的某些频率才会被选中"或显示。例如

SELECT age, COUNT(*) AS freq FROM ages GROUP BY age WHERE COUNT(*) > 20

但是上面的命令会出错。什么是正确的命令?

3 个答案:

答案 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