+ -
当前位置:首页 → 问答吧 → oracle 查询每一笔数据里面的最早数据

oracle 查询每一笔数据里面的最早数据

时间:2011-10-31

来源:互联网

id hm sj
1 1 2011/08/29 14:56:34
1 2 2011/08/30 15:56:34
1 2 2011/08/17 20:55:34
1 3 2011/08/20 14:00:34
1 4 2011/08/17 14:20:34
2 1 2011/08/29 14:56:34
2 2 2011/08/30 15:56:34
3 2 2011/08/17 20:55:34
2 3 2011/08/20 14:00:34
2 4 2011/08/17 14:20:34
3 1 2011/08/29 14:56:34
3 2 2011/08/30 15:56:34
3 2 2011/08/17 20:55:34
3 3 2011/08/20 14:00:34
3 4 2011/08/17 14:20:34


我想要的结果就是 根据id 查询出每一笔记录的最早的那个数据
结果就是这样
1 4 2011/08/17 14:20:34
2 4 2011/08/17 14:20:34
3 4 2011/08/17 14:20:34


麻烦问一下 这个怎么写啊? 谢了



作者: jayleehom2000   发布时间: 2011-10-31

可以试试row_number
SQL code
select id, hm, sj from (
select id, hm, sj,row_number()over(partition by id order by sj) n from table_name) where n=1

作者: tx2730   发布时间: 2011-10-31

[code=SQL][/code]SELECT t.id,t.hm,t.sj FROM (SELECT id,hm,sj,row_number() over(PARTITION BY ID ORDER BY sj) rn FROM ) t
WHERE t.rn = 1

作者: xiaoyu871225   发布时间: 2011-10-31

SQL code
SELECT t.id,t.hm,t.sj FROM (SELECT id,hm,sj,row_number() over(PARTITION BY ID ORDER BY sj) rn FROM ) t
WHERE t.rn = 1

作者: xiaoyu871225   发布时间: 2011-10-31

select id, hm, sj from (
select id, hm, sj,row_number()over(partition by id order by sj) n from table_name) where n=1

作者: scrack   发布时间: 2011-10-31

SQL code
[code=SQL]SELECT t.id,t.hm,t.sj FROM (SELECT id,hm,sj,row_number() over(PARTITION BY ID ORDER BY sj) rn FROM test_tab) t
WHERE t.rn = 1
[/code]

作者: xiaoyu871225   发布时间: 2011-10-31

SQL code
select id, hm, sj from (
select id, hm, sj,row_number()over(partition by id order by sj) n from table_name) where n=1

作者: cosio   发布时间: 2011-10-31