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'
)
我想获取在数据库中有 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'
)