2016-11-12 59 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' 
)