Oracle 單列去重 顯示單行所有列資料

2022-04-02 15:23:04 字數 796 閱讀 7224

1、使用 distinct 關鍵字 (oracle查詢資料中,不允許非 distinct 標註字段 )

2、使用 group by (oracle查詢資料中不允許非分組字段)

解決方案:使用row_number() over( partition by) 方法分組排序

with temp as (

select a,b,c from test_table

)select a,b,c from (

select a,b,c,row_number() over (partition by a order by rownum) row_no from temp

) where row_no = 1

ps:   with temp as() 括號內的內容 就是查詢的sql 結果包含重複資料

row_number() over(partition by 需要檢索重複的列 order by 排序的列名)  別名 row_no  ,如果分組存在多條相同值,row_no 從1開始遞增,篩選 row_no = 1 ,就取到了只出現一次的資料

參考:

Oracle 資料去重

假設資料表a,3個字段 mid 表id bjsj 報警時間 val 資料值 篩選出2019 09 20 2019 09 25時間段內記錄,每塊表的最後一條報警記錄。做法 按條件查詢出符合條件記錄,然後取每塊表的報警時間為最大的一條記錄。oracle資料庫提供了乙個函式 row number 用於給資...

oracle分頁與去重

查詢emp表中的記錄 分頁,每一頁顯示5條記錄 查詢第二頁的資料 select from select ename,sal,deptno,rownum rw from emp where rw 5 and rw 10 查詢第二頁的資料,並排序 將重覆記錄保留一條 如上,test2表中有4條重複資料,...

oracle 簡單去重過程

oracle利用rowid刪除表中重覆記錄 先看錶myemp 查出有重複資料的記錄 查出沒有重複資料的記錄 查出不重複的記錄 或者select from myemp e where rowid select max rowid from myemp e2 where e.userid e2.user...