SELECT 不同日期的记录 SQL

SELECT records on distinct dates SQL

我想获取在数据库中有 3 条或更多记录的所有用户,但他们不能有相同的日期。示例 table:

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

所以从这里开始,我只想获取User1,User3有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 个或更多记录的要求,但是我不知道如何处理不同的日期要求。

您只需将 DISTINCT 添加到 COUNT,并将 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'
)