浏览 5778 次
锁定老帖子 主题:Oracle数据记录怎么去重
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-10-25
最后修改:2010-10-25
A (Aid,name) B(bid,Aid,time) A表和B表 都有上万条记录 如果B中有多条A记录,则只查询 B中 time(时间)教新的记录 怎么才能AB关联,只显示 B中比较新的一条记录呢,有多条记录只显示最新的那一条 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-10-25
最后修改:2010-10-25
select A.Aid,A.name,B1.time from A left join
(select max(time) as time,Aid from B group by Aid ) B1 on A.Aid=B1.Aid |
|
返回顶楼 | |
发表时间:2010-10-25
finallygo 写道 select A.Aid,A.name,B1.time from A left join
(select max(time) as time,Aid from B group by Aid ) B1 on A.Aid=B1.Aid 好像是个不错的方法 |
|
返回顶楼 | |
发表时间:2010-10-26
可以先排时间降序分组排列,再取每一组中的每第一条。
row_number() over(partition by a.xx order by a.time desc) |
|
返回顶楼 | |
发表时间:2010-10-26
qiming1988 写道 可以先排时间降序分组排列,再取每一组中的每第一条。
row_number() over(partition by a.xx order by a.time desc) oracle中用这种方法还是不错的 |
|
返回顶楼 | |
发表时间:2010-10-26
qiming1988 写道 可以先排时间降序分组排列,再取每一组中的每第一条。
row_number() over(partition by a.xx order by a.time desc) 不是很清楚,能详细点不 |
|
返回顶楼 | |
发表时间:2010-10-26
finallygo 写道 select A.Aid,A.name,B1.time from A left join
(select max(time) as time,Aid from B group by Aid ) B1 on A.Aid=B1.Aid 想法一样 |
|
返回顶楼 | |
发表时间:2010-10-26
最后修改:2010-10-26
finallygo 写道 select A.Aid,A.name,B1.time from A left join
(select max(time) as time,Aid from B group by Aid ) B1 on A.Aid=B1.Aid 正解 |
|
返回顶楼 | |