1. 程式人生 > >oracle-查詢資料,其中指定欄位重複的只取其中一條

oracle-查詢資料,其中指定欄位重複的只取其中一條

今天學了一句sql和大家分享一下:
oracle資料庫,情景:表(客戶-業務員)中資料都不完全重複,但是可能多條資料其中某些欄位重複。我想要取得表中符合條件的記錄,但是這些記錄中的客戶id和客戶名稱發生重複的話只能留一個。

如圖

如上圖我想找出“馮冬梅”負責的所有客戶,但是由於她屬於多個部門,此表儲存的是不同部門-不同人員對應的不同客戶,所以會有重複資料,那麼我想去除重複得到完整的記錄,應該怎麼辦?
自己嘗試了distinct,可是distinct只能晒出重複欄位,整條記錄就沒有辦法;使用group by也沒有實現,多方查詢,sql貢獻如下:

select s.* from
(select t.*,row_number() over (partition by customid order by customid) as group_idx
from base_custom_to_saler t where t.salername like ‘%馮冬梅%’ and t.entryid = 9) s
where s.group_idx = 1

row_number()..over(partition by ..order by…) 其邏輯就是對符合某些特點的欄位進行分組,排序,然後再取資料
結果如下圖:
這裡寫圖片描述