一.引言

假设有如下三张表,里面分别记录了三类不用用户的购买记录,现在想将下属记录合并为 => | 用户 | 果蔬购买量 | 饮品购买量 | 零食购买量 | ,没有购买则为 Null:

Table A:用户在超市近一个月购买果蔬的记录

Table B:用户在超市近一个月购买饮品的记录

Table C:用户在超市近一个月购买零食的记录

先建一个表供我们插入数据

hive -e "
create table if not exists user_act_of_buying (user string,fruits string,drinks string,snacks string)PARTITIONED BY(dt string)row format delimited fields terminated by '\t'
"

二.Full Join(适合两个表)

遇到上述场景的第一反应就是使用FullJoin,以用户名为聚合字段进行联合,这里采用套娃的方式,将Table A 和 Table B结合 再将结合的表与Table C结合得到最终结果,因为Hive没办法使用连等号: a.user = b.user = c.user,所以只能通过嵌套的方式。

hive -e "
select tmp.*,c.* from
(select user,fruit,drink from(select user,fruits from tableA where dt=$dt) aFULL OUTER JOIN(select user,drinks from tableB where dt=$dt) bon a.user = b.user
) tmp
FULL OUTER JOIN
(select user,snacks from tableC where dt=$dt) c
on tmp.user = c.user;
"

三.Union All(推荐

Hive Full Join多个表与Union All多个表相关推荐

  1. 5.4广义表的定义5.5广义表的存储结构

    广义表是线性表的推广. 广义表一般记作LS=(α1,α2,...,αn) n是它的长度αi可以是单个元素也可以说广义表,分别称为广义表LS的原子和子表. 当广义表LS非空时,称第一个元素α1为LS的表 ...

  2. 5、HIVE DML操作、load数据、update、Delete、Merge、where语句、基于分区的查询、HAVING子句、LIMIT子句、Group By语法、Hive 的Join操作等

    目录: 4.2.1 Load文件数据到表中 4.2.2查询的数据插入到表中 4.2.3将Hive查询的结果存到本地Linux的文件系统目录中 4.2.4通过SQL语句的方式插入数据 4.2.5 UPD ...

  3. Hive的Join操作

    文章目录 简介 1.LEFT JOIN 2.INNER JOIN 3.RIGHT JOIN 4.FULL JOIN 5.CROSS JOIN 6.JOIN ON和WHERE条件区别 7.其他常用SQL ...

  4. mysql 多表并列查询_MySQL-18(多表查询INNER/LEFT/RIGHT JOIN)

    #    1. 多表联合查询 基本用法:查询需要显示的数据来自多张表 /*    两个关联的table查询    */ SELECT * FROM  table_name1 ,table_name2: ...

  5. Hive中JOIN操作

    1. 只支持相等JOIN. 2. 多表连接当使用不同的列进行JOIN时,会产生多个MR作业. 3. 最后的表的数据是从流中读取,而前面的会在内存中缓存,因此最好把最大的表放在最后. SELECT /* ...

  6. Hive中JOIN的使用入门

    Hive中join的用法 Hive中Join的通常使用有以下几种: inner join 等值连接 left join  right join  full join left semi join cr ...

  7. Hive中Join的 MR 底层原理

    Hive中的Join可分为Common Join(Reduce阶段完成join)和Map Join(Map阶段完成join) 一. Hive Common Join 如果不指定MapJoin或者不符合 ...

  8. hive中判断A表时间字段是否在B表的两个时间字段中及求订单中间休息时间

    问题:在hive中,A表中有一个时间的字段,类型位string,格式为2018-12-0 13:34:12:在B表中有字段start_time和end_time,类型为string,格式为2018-1 ...

  9. 六、Hive中的内部表、外部表、分区表和分桶表

    文章目录 内部表 外部表 分区表 分桶表 在Hive数据仓库中,重要点就是Hive中的四个表.Hive 中的表分为内部表.外部表.分区表和分桶表. 内部表 默认创建的表都是所谓的内部表,有时也被称为管 ...

最新文章

  1. getopt 函数2
  2. rac 火星舱如何备份oracle_Oracle数据库(RAC)巡检报告
  3. springcloud注册中心eureka
  4. 无法创建t的通用数组_创建通用数组的问题
  5. 【APICloud系列|4】APP设计统一图标大小的方法
  6. 系统架构师学习笔记-系统性能评价
  7. Mysql排序添加名词_记面试中问到的MySQL的SQL调优问题
  8. java报表 统一服务器_java报表软件中本地效果与服务器效果不一致问题处理经验分享...
  9. python手机版做小游戏代码大全-20行python代码的入门级小游戏的详解
  10. 智能门锁与网关:海康萤石智能门锁的网关分析(二)
  11. SUMO地图中添加交通流
  12. vue实现坐标拾取器功能demo
  13. tar打包命令的用法
  14. 个人简历英语及计算机能力怎么写,简历个人能力怎么写(简历中个人能力的填写技巧)...
  15. 成君忆不幸被彭剑锋言中
  16. 适配器模式(Adapter)
  17. 集福啦!你想要的“福”这里都有~
  18. 解决google扩展程序已损坏的问题
  19. iframe去除边框
  20. Android:视频播放器dkplayer

热门文章

  1. 一款跨平台小巧的端口爆破工具
  2. [网鼎杯 2020 青龙组]boom复现
  3. PCL估计点云的表面法向量
  4. Android Studio 配置翻译工具
  5. 休谟问题---至今无解的难题!
  6. 能详细讲一下关于 18 世纪哲学家大卫 • 休谟和恐怖悖论吗
  7. 带搜索框的百度地图html
  8. ironpython调用c dll_IronPython.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家...
  9. 盟百照相馆影楼摄影工作室选片系统
  10. Kaggle实战:Store Sales - Time Series Forecasting