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

Dan*_*iel 4 sql database aggregate-functions having-clause

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

SELECT CASE FOR COUNT(person_id)> 3 THEN person_id end FROM table

我试图只在表中获得> 3次出现的person_id.

OMG*_*ies 10

使用:

  SELECT t.person_id
    FROM TABLE t
GROUP BY t.personid
  HAVING COUNT(t.personid) > 3
Run Code Online (Sandbox Code Playgroud)

您不能在WHERE子句中使用聚合函数或列别名来使用聚合函数派生列.这些只能在HAVING子句中使用,该子句需要定义GROUP BY子句(如果它尚不存在).

我不建议在GROUP BY或HAVING子句中使用列别名 - 存在查询无法移植到其他数据库的风险.SQL Server和MySQL是我所知道的唯一支持GROUP BY或HAVING子句中的列别名的数据库.