MySQL 去除重復數(shù)據(jù)實例詳解
MySQL 去除重復數(shù)據(jù)實例詳解
有兩個意義上的重復記錄,一是完全重復的記錄,也即所有字段均都重復,二是部分字段重復的記錄。對于第一種重復,比較容易解決,只需在查詢語句中使用distinct關(guān)鍵字去重,幾乎所有數(shù)據(jù)庫系統(tǒng)都支持distinct操作。發(fā)生這種重復的原因主要是表設(shè)計不周,通過給表增加主鍵或唯一索引列即可避免。
select distinct * from t;
對于第二類重復問題,通常要求查詢出重復記錄中的任一條記錄。假設(shè)表t有id,name,address三個字段,id是主鍵,有重復的字段為name,address,要求得到這兩個字段唯一的結(jié)果集。
-- Oracle、MySQL,使用相關(guān)子查詢
select * from t t1 where t1.id = (select min(t2.id) from t t2 where t1.name = t2.name and t1.address = t2.address);
-- Hive只支持在FROM子句中使用子查詢,子查詢必須有名字,并且列必須唯一
select t1.* from t t1, (select name, address, min(id) id from t group by name, address) t2 where t1.id = t2.id;
-- 還可以使用hive的row_number()分析函數(shù)
select t.id, t.name, t.address
from (select id, name, address,
row_number() over (distribute by name, address sort by id) as rn
from t) t
where t.rn=1;
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- mysql 數(shù)據(jù)表中查找重復記錄
- MySQL 刪除數(shù)據(jù)庫中重復數(shù)據(jù)方法小結(jié)
- MySQL查詢重復數(shù)據(jù)(刪除重復數(shù)據(jù)保留id最小的一條為唯一數(shù)據(jù))
- 很全面的MySQL處理重復數(shù)據(jù)代碼
- MySQL數(shù)據(jù)庫中刪除重復記錄的方法總結(jié)[推薦]
- 有效查詢MySQL表中重復數(shù)據(jù)的方法和技巧分享
- 刪除MySQL重復數(shù)據(jù)的方法
- MySQL中刪除重復數(shù)據(jù)的簡單方法
- MYSQL刪除重復數(shù)據(jù)的簡單方法
- MySQL處理重復數(shù)據(jù)完整代碼實例
相關(guān)文章
修改MySQL8.0 默認的數(shù)據(jù)目錄(快捷操作無配置)
這篇文章主要介紹了修改MySQL8.0 默認的數(shù)據(jù)目錄(快捷操作無配置),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11
MySQL判斷查詢條件是否包含某字符串的7種方式總結(jié)
SQLServer數(shù)據(jù)庫死鎖是指在多個事務(wù)同時訪問數(shù)據(jù)庫資源時,發(fā)生了互相等待對方所持有資源的情況,導致所有事務(wù)無法繼續(xù)執(zhí)行的現(xiàn)象,這篇文章主要給大家介紹了關(guān)于MySQL判斷查詢條件是否包含某字符串的7種方式,需要的朋友可以參考下2024-07-07
MySQL轉(zhuǎn)換Oracle的需要注意的七個事項
有很多應(yīng)用項目, 剛起步的時候用MySQL數(shù)據(jù)庫基本上能實現(xiàn)各種功能需求,隨著應(yīng)用用戶的增多,數(shù)據(jù)量的增加,MySQL漸漸地出現(xiàn)不堪重負的情況:連接很慢甚至宕機,于是就有MySQL轉(zhuǎn)換Oracle的需求,應(yīng)用程序也要相應(yīng)做一些修改。2010-12-12
Mysql TIMESTAMPDIFF函數(shù)示例詳解
這篇文章主要介紹了Mysql TIMESTAMPDIFF函數(shù)示例詳解,TIMESTAMPDIFF函數(shù)返回datetime_expr2 - datetime_expr1的結(jié)果,其中datetime_expr1和datetime_expr2可以是DATE或DATETIME類型值,本文給大家詳細講解,需要的朋友可以參考下2023-03-03

