Oraclesql取最大值所在行

用excel表格模拟数据库表中的数据

WXWorkLocal_171833345442.png

以姓名为主键,找出每个人收入最高月的的行。

即每人一行,这一行对应这个人收入为最高。

SQL 来无影 发布于 2024-6-14 10:54
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
CD20160914Lv8专家互助
发布于2024-6-14 10:55(编辑于 2024-6-14 10:58)

oracel中直接使用窗口函数就行了

select t.* from (

select *,ROW_NUMBER () OVER (PARTITION BY 姓名 ORDER BY 收入 desc ) as 序号  from 表名称

) t

where 1=1

and t.序号=1

  • 来无影 来无影(提问者) 数据设置 汇总 最大值 这样设置后,页面只显示最大值所在行,其他的不显示,是吗?
    2024-06-14 10:57 
  • CD20160914 CD20160914 回复 来无影(提问者) 是的,你可以直接测试看。
    2024-06-14 10:58 
  • CD20160914 CD20160914 回复 来无影(提问者) 做了修改,按姓名分组,然后收入排序,它会出来一个序号,最后取序号为1的
    2024-06-14 10:58 
  • CD20160914 CD20160914 回复 来无影(提问者) 我重新修改了一下语句,你复制用,这个效率是很高的。
    2024-06-14 10:59 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2024-6-14 10:55

SELECT A.* FROM table  A INNER JOIN (

SELECT 姓名,max(收入) [max_] from table group by 姓名

) B ON A.姓名=B.姓名 AND A.收入=b.max_

最佳回答
0
华莉星宸Lv7高级互助
发布于2024-6-14 10:57

select * from biao

where 姓名||月份 = (select 姓名||月份  from (select 姓名,月份,max(收入) from 表 group by 姓名,月份))

  • 3关注人数
  • 166浏览人数
  • 最后回答于:2024-6-14 10:58
    请选择关闭问题的原因
    确定 取消
    返回顶部