我有两个表t1包含300万条记录,t2包含11000条记录。我执行查询
Select Count(*) FROM t1 LEFT JOIN t2 ON t1.id = t2.id
我在一个sql工作台上执行这个查询,它返回300万个正确的结果,因为它是一个左连接。但是当我把这些数据上传到hive并运行相同的查询时,它返回了900万。有人能解释为什么会这样吗?连接在配置单元中的行为是否与普通sql不同?
r1zhe5dt1#
试试这个
Select COUNT(id) FROM t1 LEFT OUTER JOIN t2 ON t1.id = t2.id;
9njqaruj2#
使用Hive
select count(*) from tb1
见数据数字是3百万tb2标识一对多配置单元插入日期选择?
6g8kf2rb3#
数据不一样。我建议使用“直方图”查询来找出问题所在:
select cnt, count(*), min(id), max(id) from (select id, count(t2.id) as cnt from t1 left join t2 on t1.id = t2.id group by id ) t group by cnt order by cnt;
这将给出有多少不匹配的概念;多少个一个,两个,等等。
3条答案
按热度按时间r1zhe5dt1#
试试这个
9njqaruj2#
使用Hive
见数据数字是3百万
tb2标识一对多
配置单元插入日期选择?
6g8kf2rb3#
数据不一样。我建议使用“直方图”查询来找出问题所在:
这将给出有多少不匹配的概念;多少个一个,两个,等等。