leftjoin/innerjoin以后数据条数比原数据表多的原因及解决办法

举例
A 表(1500行)是用户id和对应年龄,B 表(5000行)是用户id 和对应的爱好(如果有多个爱好就会出现多行数据),现在想通过用户id来链接这两张表,使用 left join(A,B)或者 inner join
结果连完发现生成了一张 3000行的表C(但理论上行数应该小于等于表 A)

问题原因
在 R 中发生这种问题,很大原因是两张表拿来连接的字段(比如用户id),在第二张表里面出现了多次,或者在第一张表里也有重复只
在 SQL 中发生这种问题,还有一种可能性是因为表 B 行数比表 A 多,所以会导致表 C 行数高于表 A

解决办法
首先,可以明确的是多出来的这些行是重复值,不是什么错误值,所以不需要太慌,无论是在R 还是 SQL中,发生这种问题都可以直接去重解决
在R中的代码,group_by 配合 summarize 去重
在SQL中的代码,group_by 去重

————————————————
版权声明:本文为CSDN博主「猛狗哭泣」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Yann_YU/article/details/107230066

posted @   盘思动  阅读(2178)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2022-01-12 linux查看openssh和openssl版本
2022-01-12 linux开启ssh查询与操作
2022-01-12 redis开启远程服务
2022-01-12 nginx 查看已安装配置
2020-01-12 去除inline-block 的间距
2018-01-12 each jquery
2018-01-12 tp查找某字段,排除某字段,不用一次写那么多
点击右上角即可分享
微信分享提示