DB2、MySQL去重SQL
生活随笔
收集整理的這篇文章主要介紹了
DB2、MySQL去重SQL
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
X-Dragon版權(quán)所有
Email : cnxielong@gmail.com
參考:https://www.cnblogs.com/xuena/p/3912234.html
1 分類
- 重復(fù)分兩種。
- 一是完全重復(fù)的記錄,也即所有字段均重復(fù)的記錄,
- 二是部分關(guān)鍵字段重復(fù)的記錄,比如Name字段重復(fù),而其他字段不一定重復(fù)或都重復(fù)可以忽略。
2 表數(shù)據(jù)
- 用戶辦理套餐的記錄表,可看出,user_id=33333有兩條完全重復(fù)的記錄,user_id=11111的tc_name和open_date不一樣
3 去重SQL
1、完全重復(fù),使用distinct或group by
-- 1、完全去重 使用distinct--SELECT DISTINCT USER_ID,NAME,TC_NAME,OPEN_DATE FROM DISTINCT_TABLE;-- 2、完全重復(fù) 用group by 該方法也只對完全重復(fù)的記錄有效--SELECT USER_ID,NAME,TC_NAME,OPEN_DATE FROM DISTINCT_TABLE GROUP BY USER_ID,NAME,TC_NAME,OPEN_DATE;2、部分重復(fù) max聚合函數(shù)
- 該方法得出的結(jié)果如下,對完全重復(fù)記錄和部分重復(fù)記錄都有效
- 注:部分重復(fù)的記錄要對所有重復(fù)字段使用max或min等才有效
3、row_number()over() 分等級之后限定 row=1
-- 3、row_number()over() 分等級之后限定 row=1 MYSQL語法報錯 DB2應(yīng)該可以--SELECT user_id,NAME,tc_name,open_date FROM ( SELECT user_id,NAME,tc_name,open_date,row_number() over(PARTITION BY user_id ORDER BY open_date DESC) AS ROWFROMDISTINCT_TABLE ) WHERE ROW=1總結(jié)
以上是生活随笔為你收集整理的DB2、MySQL去重SQL的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鼠标计算机,事实:计算机鼠标在哪里?
- 下一篇: spyder for python3.6