oracle查询结果如果某个字段重复的时候就取另一个字段值最小的数据

如表a数据信息如下:IdnameResults1karl852ramon903karl934ramon95如果name相同的时候取Results最大的数据如图所示的最后的... 如表a数据信息如下:
Id name Results
1 karl 85
2 ramon 90
3 karl 93
4 ramon 95
如果name相同的时候 取Results 最大的数据
如图所示的最后的结果应该是
Id name Results
1 karl 93
2 ramon 95
本来想多悬赏点分数,奈何没有那么多的资本 请各位多多帮助
多谢两位,我把自己写的sql语句和产生结果贴上去 期望大家能帮助我解决,解决的话 我会多给分的.具体的代码和产生结果的截图请查看图片,有问题不明白请QQ联系我:308948501 添加好友时请说明是百度知道帮组解决问题的朋友.再次感谢
展开
 我来答
hadesdonghao
2012-04-24 · TA获得超过249个赞
知道答主
回答量:57
采纳率:100%
帮助的人:40.8万
展开全部
SELECT A.NAME,MIN(RESULTS) FROM A
GROUP BY A.NAME;
就是这么简单!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
神装法师
2012-04-16 · TA获得超过790个赞
知道小有建树答主
回答量:154
采纳率:0%
帮助的人:322万
展开全部
select rownum,a.* from select (name, max(results) from table_a group by name order by name) a;
追问
我把sql语句和产生结果的截图给你请你帮忙看下 谢谢. 或者能告诉我你的qq  我们在线说.
追答
你这个要用到row_number()函数,语法是row_number() over(partition by 报修单号 order by 到修时间)。用这个函数可以按照报修单号分组,每组中按照到修时间排序并分配一个序号。想要最小的就取序号是1的,想要最大的就row_number() over(partition by 报修单号 order by 到修时间 desc)取序号是1的。

举例:
select 报修单号, 到修时间 from (select 报修单号, 到修时间, row_number() over(partition by 报修单号 order by 到修时间) rn from table_name) where rn=1 order by 报修单号;
可以根据需要加上desc或者不加。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhenxin0603
2012-04-16 · TA获得超过600个赞
知道小有建树答主
回答量:600
采纳率:100%
帮助的人:453万
展开全部
select name,max(results) from a group by name
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式