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的資料實作去重操作。