国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

MySQL 去除重復(fù)數(shù)據(jù)實例詳解

2024-07-24 13:13:45
字體:
供稿:網(wǎng)友

mysql/46798.html">MySQL 去除重復(fù)數(shù)據(jù)實例詳解

有兩個意義上的重復(fù)記錄,一是完全重復(fù)的記錄,也即所有字段均都重復(fù),二是部分字段重復(fù)的記錄。對于第一種重復(fù),比較容易解決,只需在查詢語句中使用distinct關(guān)鍵字去重,幾乎所有數(shù)據(jù)庫系統(tǒng)都支持distinct操作。發(fā)生這種重復(fù)的原因主要是表設(shè)計不周,通過給表增加主鍵或唯一索引列即可避免。

select distinct * from t;

對于第二類重復(fù)問題,通常要求查詢出重復(fù)記錄中的任一條記錄。假設(shè)表t有id,name,address三個字段,id是主鍵,有重復(fù)的字段為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;

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關(guān)教程知識閱讀請移步到MYSQL教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 木兰县| 历史| 白水县| 通道| 澳门| 乐至县| 清河县| 泽库县| 福建省| 九台市| 邵阳县| 龙岩市| 察隅县| 涞源县| 衡水市| 拜泉县| 噶尔县| 胶州市| 临泉县| 普洱| 英德市| 四川省| 宁波市| 文水县| 深圳市| 望奎县| 新宁县| 平远县| 丰宁| 丽水市| 页游| 苍梧县| 隆尧县| 浑源县| 塔城市| 中江县| 宽甸| 正宁县| 穆棱市| 秀山| 顺义区|