找文章 / 找答案
精选问答 更多内容

[SQL独家资料] SQL数据分析:处理重复值

puffs 显示全部楼层 发表于 2024-7-29 18:37:20 |阅读模式 打印 上一主题 下一主题
出现重复的原因多种多样,可能出现重复的场景:在数据输入过程中可能出现bug导致重复数据,在设计表多对多时(使用join)也有可能导致出现重复数据;在分析过程中重复数据需要剔除,否则将得到一个错误的分析结果使得分析工作毫无意义

01检查是否存在重复数据

使用python处理数据的同学就会发现,检查表中是否存在重复值只需“df.duplicated().sum()”即可得到结果,但使用SQL命令会不一样

举例:查询“retail_sales_dataset”表中是否存在重复数据该表共9个字段,由于该方法需要把所有字段名称都列出来,可用“SHOW COLUMNS FROM retail_sales_dataset;”来输出所有字段名称,然后选中字段名复制粘贴即可
方法一:如返回结果为0则无重复数据,文末附上操作视频
SELECT count(*) FROM (
SELECT `Transaction ID`,Date,`Customer ID`,Gender,Age,
`Product Category`,Quantity,`Price per Unit`,`Total Amount`,count(*)as records FROM
retail_sales_dataset GROUP BY 1,2,3,4,5,6,7,8,9
)a WHERE records>1;

输出结果:


方法二:如records>1则列出所有重复内容,如不满足条件则为空
SELECT `Transaction ID`,Date,`Customer ID`,Gender,Age,
`Product Category`,Quantity,`Price per Unit`,`Total Amount`,count(*)as records
FROM
retail_sales_dataset
GROUP BY 1,2,3,4,5,6,7,8,9
HAVING count(*)>1;

输出结果


02使用distinct去重


-- 查询结果去重
SELECT DISTINCT * FROM retail_sales_dataset;

-- 查询去重后的客户ID
SELECT DISTINCT `Customer ID` FROM retail_sales_dataset;

-- 使用join时添加DISTINCT去重,也可以使用其他方法去重
SELECT DISTINCT a.id,a.name
FROM table1 a
join table2 b on a.id=b.id;




回复

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
50W

会员等你来哦

Copyright   ©2012-2024  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部