Oracle数据库
有一张表user
字段:key,userid,amendtime,status,pid,.....(还有其它字段)
表里有很多记录
查询
用户id相同,但修改时间最早,status=1,pid=12
的一组记录表里有很多用户id,同时有很多修改时间。记录里都是一个用户id对应一个最早修改时间,没有id重复的情况我sql很弱~达人帮下忙。100分奉上
有一张表user
字段:key,userid,amendtime,status,pid,.....(还有其它字段)
表里有很多记录
查询
用户id相同,但修改时间最早,status=1,pid=12
的一组记录表里有很多用户id,同时有很多修改时间。记录里都是一个用户id对应一个最早修改时间,没有id重复的情况我sql很弱~达人帮下忙。100分奉上
select userid,min(amendtime) ealiest from user
where status=1 and pid=12
group by userid
FROM (SELECT key,
userid,
row_number() over(PARTITION BY userid ORDER BY amendtime) rn,
amendtime,
status,
pid
FROM USER)
WHERE rn = 1;
SELECT *
FROM (SELECT key,
userid,
row_number() over(PARTITION BY userid ORDER BY amendtime) rn,
amendtime,
status,
pid
FROM USER
WHERE status = 1 AND
pid = 12)
WHERE rn = 1;
还是第一次看见,路漫漫兮。。