天天看點

使用sql對資料去重的幾種方式

1.使用 DISTINCT 關鍵詞

在表中,可能會包含重複值。這并不成問題,不過,有時您也許希望僅僅列出不同(distinct)的值。

關鍵詞 DISTINCT 用于傳回唯一不同的值。

文法:

SELECT DISTINCT 列名稱 FROM 表名稱
           

其中的一種使用方式:

select t.a A,count(distinct t.b) B
from table_name t    
group by t.a
           

2.使用row_number() over (partition by col1 order by col2)

row_number() over (partition by col1 order by col2) 表示根據col1分組,在分組内部根據col2排序,而此函數計算的值就表示每組内部排序後的順序編号(組内連續的唯一的)

select t.*  
from (
select a.*,
row_number() over(partition by a.col1 order by a.col2 desc) rn          
from table_name a) t 
where t.rn = 1
           

思路:

通過col1字段分組後再以col2字段組内降序排列并添加序号,然後再查詢出組内序号等于1的資料實作去重操作。

繼續閱讀