请教一个表连接的问题

knddlsrz 2017-11-22 04:03:02
表A:id,.....
表B: id, idx
B中同一个id有很多个idx
现在想把表A和B做一个id相等的连接,但是B中对同一个id只想取idx最大的那个,请问应该如何做?
...全文
173 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
minsic78 2017-11-23
  • 打赏
  • 举报
回复
引用 2 楼 qq646748739 的回复:
使用楼上的MAX分析函数,结果会存在重复的数据。需要加个distinct去重。 不妨试试这个:
 
select a.id,
  from a,(select id,row_number()over(partition by id order by idx desc) as rn) b
 where a.id = b.id and b.rn = 1
 
十年没写SQL,果然不行
碧水幽幽泉 2017-11-23
  • 打赏
  • 举报
回复
引用 7 楼 minsic78的回复:
[quote=引用 2 楼 qq646748739 的回复:] 使用楼上的MAX分析函数,结果会存在重复的数据。需要加个distinct去重。 不妨试试这个:
 
select a.id,
  from a,(select id,row_number()over(partition by id order by idx desc) as rn) b
 where a.id = b.id and b.rn = 1
 
十年没写SQL,果然不行 [/quote]
Action_xss 2017-11-22
  • 打赏
  • 举报
回复
SELECT A.ID,MAX(B.IDX) FROM A LEFT JOIN B ON A.ID = B.ID
白头海雕 2017-11-22
  • 打赏
  • 举报
回复
select A.id, A.a1,A.a2, C.c1,C.c2, D.d1, from A inner join C on A.id=C.id inner join D on A.id=D.id inner join (SELECT DISTINCT NMAE, MAX (ID_NUMBER) over (partition by NMAE) ID_NUMBER FROM A) GG ON A.ID=GG.ID
白头海雕 2017-11-22
  • 打赏
  • 举报
回复
select A.id, A.a1,A.a2, C.c1,C.c2, D.d1, from A inner join C on A.id=C.id inner join D on A.id=D.id inner join (SELECT ID,MAX(IDX) FROM B GROUP BY ID) GG ON A.ID=GG.ID
knddlsrz 2017-11-22
  • 打赏
  • 举报
回复
这个只是两个表,我把问题简化了,其实实际情况是很多表,前面已经用inner join 连接起来了,现在要把表B连接进去。 大概之前写的语句是这样的: select A.id, A.a1,A.a2, C.c1,C.c2, D.d1, from A inner join C on A.id=C.id inner join D on A.id=D.id
碧水幽幽泉 2017-11-22
  • 打赏
  • 举报
回复
使用楼上的MAX分析函数,结果会存在重复的数据。需要加个distinct去重。

不妨试试这个:
 
select a.id,
from a,(select id,row_number()over(partition by id order by idx desc) as rn) b
where a.id = b.id and b.rn = 1
minsic78 2017-11-22
  • 打赏
  • 举报
回复
SELECT a.id, (SELECT MAX (idx) FROM b WHERE a.id = b.id) AS idx FROM a 或者: SELECT a.id, b.idx FROM a, (SELECT id, MAX (idx) OVER (PARTITION BY id) FROM b) b WHERE a.id = b.id 大概就这意思,不过两者性能谁更佳,可能还要看数据分布情况。

17,088

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧