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
相信坚持的力量,日复一日的习惯.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需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查找某字段,排除某字段,不用一次写那么多