SQL选择计数(person_id)> 3来自

时间:2010-06-29 17:53:50

标签: sql database aggregate-functions having-clause

有人可以把这个英文翻译成SQL我已经尝试了几件事但没有运气。

COUNT时的SELECT CASE(person_id)> 3然后person_id结束FROM table

我试图只获取发生的person_id>表中有3次。

2 个答案:

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