2016-11-12 87 views
0

我想獲取所有在數據庫中有3個或更多記錄的用戶,但他們不能有相同的日期。示例表:不同日期的SELECT記錄SQL

User1 40 12/11/15 
User1 33 13/11/16 
User1 23 04/09/16 
User2 21 30/09/16 
User3 12 12/11/16 
User3 54 12/11/16 
User3 99 04/09/16 
從這裏

所以,我想只獲得用戶1,用戶3有3條記錄,但由於他們2個是在同一天,他沒有資格。 (如果兩個或多個記錄在同一天,只要至少有3個記錄在不同的日期,那麼這是可以的,因此如果我們在不同的日期爲user3添加一個記錄,他也將滿足要求。

這是我的查詢到目前爲止:

SELECT id, price, date 
FROM Table 
WHERE id 
IN (

SELECT id 
FROM Table 
GROUP BY id 
HAVING COUNT(ocust) >=3 
) 

它需要的要求,照顧到有3分或更多的記錄,但我不知道如何照顧不同日期的要求。

回答

1

你只需要添加DISTINCTCOUNT,並改變ocust(無論是)以date

SELECT id, price, date 
FROM Table 
WHERE id 
IN (
    SELECT id 
    FROM Table 
    GROUP BY id 
    HAVING COUNT(DISTINCT date) >=3 -- Added DISTINCT, changed 'ocust' to 'date' 
)