oracle按某个字段分组然后从每组取出最大的一条纪录
生活随笔
收集整理的這篇文章主要介紹了
oracle按某个字段分组然后从每组取出最大的一条纪录
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
需求:查詢各個設備存在未消缺的缺陷,取缺陷等級最高的,作為這個設備當前的缺陷等級: 數據源: select t.device_id, t.defect_levelfrom sp_pd_defect twhere t.deal_result <> 2and t.device_id in ('03060000083602','03060000085322','03060000085762','03060000087242','03060003731354')group by t.device_id, t.defect_levelorder by t.device_id, t.defect_level asc;
如圖:
?
要求: 需求獲取紅色部分的內容,,那么對應的SQL語句為 select device_id 設備ID, defect_level 缺陷等級 --缺陷等級,1緊急,2重大,3一般,4其他from (select t.device_id,t.defect_level,row_number() over(partition by t.device_id order by t.defect_level asc) rnfrom sp_pd_defect twhere t.deal_result <> 2and t.device_id in ('03060000083602','03060000085322','03060000085762','03060000087242','03060003731354'))where rn = 1;?結果如圖:
?
其中:?row_number() over(?partition?by 分組字段?order?by?排序字段?desc轉載于:https://www.cnblogs.com/ryanchancrj/p/6437288.html
總結
以上是生活随笔為你收集整理的oracle按某个字段分组然后从每组取出最大的一条纪录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CMPP3.0 长短信实现方案
- 下一篇: 51 单片机 跑马灯2