有人可以把这个英文翻译成SQL我已经尝试了几件事但没有运气。
COUNT时的SELECT CASE(person_id)> 3然后person_id结束FROM table
我试图只获取发生的person_id>表中有3次。
答案 0 :(得分:10)
使用:
SELECT t.person_id
FROM TABLE t
GROUP BY t.personid
HAVING COUNT(t.personid) > 3
您不能在WHERE子句中使用聚合函数或列别名来使用聚合函数派生列。这些只能在HAVING子句中使用,该子句需要定义GROUP BY子句(如果它尚不存在)。
我不建议在GROUP BY或HAVING子句中使用列别名 - 存在查询无法移植到其他数据库的风险。 SQL Server和MySQL是我所知道的唯一支持GROUP BY或HAVING子句中的列别名的数据库。
答案 1 :(得分:3)
SELECT
person_id
FROM table
GROUP BY person_id
HAVING COUNT(*) > 3