oracle過濾某個字段重覆記錄,只獲取一條記錄

2021-09-02 18:32:11 字數 1751 閱讀 3287

一,首先想到:

1,關鍵字distinct

2,group by

3,max,min這樣的函式被稱為聚集函式,和group搭配起來用

但均無法實現,執行結果如下

舉例:表名:offsiteoutreachteam_list

字段:corpaddlevel(獲取該字段不重複資料),channelcode, corpname, belongorgname

執行結果:

1,distinct

--乙個字段有效,多個字段無效

select distinct corpaddlevel from offsiteoutreachteam_list;

select distinct corpaddlevel ,channelcode, corpname, belongorgname from offsiteoutreachteam_list;

注意:當除了過濾欄位外的其他所有字段內容相同時,才可以起到過濾效果。

2,group by

--只能查詢乙個字段

select corpaddlevel from offsiteoutreachteam_list group by corpaddlevel; --報錯 not a group by expression

select corpaddlevel,channelcode, corpname, belongorgname from offsiteoutreachteam_list group by corpaddlevel;

3,max,min這樣的函式被稱為聚集函式,和group搭配起來用

--只能過濾兩個字段

select min(channelcode), corpaddlevel from offsiteoutreachteam_list group by corpaddlevel --報錯 not a group by expression

select min(channelcode), corpaddlevel,corpname, belongorgname from offsiteoutreachteam_list group by corpaddlevel

二,正確方式

1,關鍵字 row_number() over(partition by 使用子查詢對重複資料按照123...排序,再條件需要為1的。

select  corpaddlevel ,channelcode, corpname, belongorgname 

from(select ol.corpaddlevel,ol.channelcode, ol.corpname, ol.belongorgname, row_number() over(partition by ol.corpaddlevelorder by ol.corpaddlevel) ds 

from offsiteoutreachteam_list ol

where ol.corpaddlevel is not null)

where ds = 1

2,使用min group by進行子查詢,獲取唯一字段,再查詢所有字段。

select  corpaddlevel ,channelcode, corpname, belongorgname from offsiteoutreachteam_list where channelcode in

(select min(channelcode) from offsiteoutreachteam_list group by corpaddlevel) order by corpaddlevel;

oracle過濾某個字段重覆記錄,只獲取一條記錄

一,首先想到 1,關鍵字distinct 2,group by 3,max,min這樣的函式被稱為聚集函式,和group搭配起來用 但均無法實現,執行結果如下 舉例 表名 offsiteoutreachteam list 字段 corpaddlevel 獲取該字段不重複資料 channelcode,...

oracle拆分某個字段

表 uf wzlb 物資類別 表 uf wzzl 物資種類 表 uf wzlb wzzl 物資類別和物資種類關聯表,物資類別與物資種類為一對多關係 如,物資類別編碼為 wzlb 201805100004 該物資類別繫結了多個物資種類,繫結的物資種類編碼為 wzzl 201805100044,wzzl...

Oracle 某個字段排序報錯

出現這個問題的原因 是因為在檢視中進行了計算 加減乘除等 而這幾個欄位中存在錯誤的資料 比如用 ss 1 資料庫進行型別轉換的時候就會報錯了 我們需要將有資料錯誤的字段找出來人後刪除或者修改 就可以解決 比如在檢視中計算了 select a,b,c d as d from test 但是d裡面有一條...