
hive
文章平均质量分 76
gegeyanxin
这个作者很懒,什么都没留下…
展开
-
hive SQL 技巧积累
一、row_number() over(parttition by order by) 里分区字段可以是多个。 二、left join的字段可以是两个,其中一个可以是小于不一定都要等于。比如用两个表的时间做筛选,在主键id相同的情况下,可以以一个表的时间做基点,另一个表的时间小于他的做聚合,然后选出最小于他的最大时间。 三、多行聚合拼接:按照id聚合group by ,将需要选择合并的字段concat起来,作为你想要存放的字段。 1.c是去掉首尾的拼接符号,concat是普通拼接。 2.collec原创 2021-03-16 10:32:07 · 892 阅读 · 0 评论 -
hive的left join,条件放在on、whrere里的不同结果(含左右表各种情况)
一、left join中where里放右侧表的过滤条件的后果:将左表满足条件的数据也过滤掉了。 原因:在总的where里放的条件是在生成的中间大宽表的结果上做的过滤 我亲身经历的一次事故:本意是要过滤各自的数据,然后做左关联,那么左表的数据自然是不希望被过滤掉的,要不然就用join了。 但是不理解where条件的执行顺序,将右表的过滤条件也放在里where后面,结果丢失了大量的左表数据,做了次事故报告。 涨的姿势:如果要过滤右表的数据,要么放在右表的子查询里,要么放在on里。 二、left joi原创 2021-04-25 12:01:31 · 3221 阅读 · 1 评论