我想获取数据库中拥有 3 条或更多记录的所有用户,但他们不能具有相同的日期。示例表:
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'
)
关于mysql - SELECT 不同日期的记录 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40565012/