假设您有一个包含3列的数据集:ID,user,date。
是否可以根据最小日期过滤数据,即使某些行具有相同的ID?
抱歉,如果问题有点不清楚。希望下面的图片有助于清除事物。有两条ID = 1的记录,具有不同的用户和日期。我想要检索的是具有ID = 1,USER = A,DATE = 2013-01-20的记录,因为它的日期早于第二条记录的日期(ID = 1,USER = A,DATE = 2013-01 -21)
我希望对ID = 2的三个记录实现相同的效果。所需记录为ID = 2,USER = C,DATE = 2013-10-20
基本上我想按照他们的ID对这些记录进行分组,然后从该分组中获取具有最低日期的记录
答案 0 :(得分:3)
SELECT id, user, date
FROM OriginalData od
WHERE date = (SELECT MIN(date)
FROM OriginalDate od1
WHERE od.id = od1.id)
答案 1 :(得分:0)
Select * from table_name where date in
( select MIN(date) from table_name)
答案 2 :(得分:0)
您必须在Group By
属性上使用Id
子句。
使用以下语法
select * from tab1 where (id, date) in (select id, min(date) from tab1 group by(id))