• 售前

  • 售后

热门帖子
入门百科

MySQL 去除重复数据实例详解

[复制链接]
m12345666 显示全部楼层 发表于 2021-10-25 20:13:32 |阅读模式 打印 上一主题 下一主题
MySQL 去除重复数据实例详解
有两个意义上的重复记录,一是完全重复的记录,也即全部字段均都重复,二是部门字段重复的记录。对于第一种重复,比较轻易解决,只需在查询语句中使用distinct关键字去重,险些全部数据库系统都支持distinct操作。发生这种重复的缘故原由重要是表设计不周,通过给表增长主键或唯一索引列即可克制。
  1. select distinct * from t;
复制代码
对于第二类重复题目,通常要求查询出重复记录中的任一条记录。假设表t有id,name,address三个字段,id是主键,有重复的字段为name,address,要求得到这两个字段唯一的结果集。
-- Oracle、MySQL,使用相干子查询
  1. select * from t t1
  2. where t1.id =
  3. (select min(t2.id)
  4.   from t t2
  5.   where t1.name = t2.name and t1.address = t2.address);
复制代码
-- Hive只支持在FROM子句中使用子查询,子查询必须有名字,并且列必须唯一
  1. select t1.*
  2. from t t1,
  3.    (select name, address, min(id) id from t group by name, address) t2
  4. where t1.id = t2.id;
复制代码
-- 还可以使用hive的row_number()分析函数
  1. select t.id, t.name, t.address
  2. from (select id, name, address,
  3. row_number() over (distribute by name, address sort by id) as rn
  4.      from t) t
  5. where t.rn=1;
复制代码
感谢阅读,希望能帮助到各人,谢谢各人对本站的支持!

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作