2010-06-29 48 views
4

有人可以將此英文轉換爲SQL我嘗試了幾件事情,但沒有運氣。SQL選擇計數(person_id)> 3從

SELECT CASE WHEN COUNT(爲person_id)> 3,那麼爲person_id結束FROM表

我想只得到表中出現> 3次爲person_id(S)。

回答

9

用途:

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子句中的列別名的唯一數據庫。

+0

你們很棒! – Daniel 2010-06-29 18:05:01

3
SELECT 
    person_id 

FROM table 

GROUP BY person_id 

HAVING COUNT(*) > 3