帮我看看这条sql语句该这么写,分组查询,结果正解立即结贴

xiaohu8855 2010-07-13 10:38:04
with t as (select 1 "TID",1 "PID", 3 "STEPNO" from dual
union all select 2 ,2 , 1 from dual
union all select 3 ,2 , 2 from dual
union all select 4 ,3 , 4 from dual
union all select 5 ,3 , 5 from dual
union all select 6 ,4 , 6 from dual)

要求,在pid 相同的情况下,找出stepno最大的项对应的tid
...全文
71 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kyle7788 2010-07-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 phoenix_99 的回复:]
SQL code
with t as (
select 1 "TID",1 "PID", 3 "STEPNO" from dual
union all select 2 ,2 , 1 from dual
union all select 3 ,2 , 2 from dual
union all select 4 ,3 , 4 from dual
union all select 5……
[/Quote]
学习!
taotie1225 2010-07-13
  • 打赏
  • 举报
回复
自己结贴
Phoenix_99 2010-07-13
  • 打赏
  • 举报
回复
with t as (
select 1 "TID",1 "PID", 3 "STEPNO" from dual
union all select 2 ,2 , 1 from dual
union all select 3 ,2 , 2 from dual
union all select 4 ,3 , 4 from dual
union all select 5 ,3 , 5 from dual
union all select 6 ,4 , 6 from dual)

select tid,pid,stepno from(
select tid,pid,stepno,row_number() over(partition by pid order by stepno desc) rn from t
) where rn = 1
xiaohu8855 2010-07-13
  • 打赏
  • 举报
回复
我写错了,那个tid是uuid类型的,不能比较大小的
cosio 2010-07-13
  • 打赏
  • 举报
回复
select max(tid),pid,max(stepno) from t group by pid
Phoenix_99 2010-07-13
  • 打赏
  • 举报
回复
select max(tid),pid,max(stepno) from t group by pid
xiaohu8855 2010-07-13
  • 打赏
  • 举报
回复
自己结贴了
select * from task tt where (tt.pid,tt.stepno) in (select t.pid,max(stepno) from task t group by t.pid )

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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