当前位置:首页 > 开发 > 编程语言 > 大数据 > 正文

hive实例讲解实现in和not in子句

发表于: 2014-12-01   作者:daizj   来源:转载   浏览:
摘要: 本文转自:http://www.cnblogs.com/ggjucheng/archive/2013/01/03/2842855.html 当前hive不支持 in或not in 中包含查询子句的语法,所以只能通过left join实现。 假设有一个登陆表login(当天登陆记录,只有一个uid),和一个用户注册表regusers(当天注册用户,字段只有一个uid),这两个表都包含
本文转自:http://www.cnblogs.com/ggjucheng/archive/2013/01/03/2842855.html


当前hive不支持 in或not in 中包含查询子句的语法,所以只能通过left join实现。

假设有一个登陆表login(当天登陆记录,只有一个uid),和一个用户注册表regusers(当天注册用户,字段只有一个uid),这两个表都包含一个字段,uid。



in查询
如果要查询当天登陆的注册用户,需要用in查询,hive sql如下:

select login.uid from login left outer join regusers on login.uid=regusers.uid where regusers.uid is not null
如果login表和regusers表按天分区,字段是dt,那么查询2013年1月1号当天登陆的注册用户,hive sql如下:

select login.uid from login day_login left outer join
   (select uid from regusers where dt='20130101') day_regusers
on day_login.uid=day_regusers.uid where day_login.dt='20130101' and day_regusers.uid is not null


not in查询
如果要查询当天登陆的老用户(这里假设非当天注册用户就是老用户),需要用not in查询,hive sql如下:

select login.uid from login left outer join regusers on login.uid=regusers.uid where regusers.uid is null;
如果login表和regusers表按天分区,字段是dt,那么查询2013年1月1号当天登陆的老用户,hive sql如下:

select login.uid from login day_login left outer join
   (select uid from regusers where dt='20130101') day_regusers
on day_login.uid=day_regusers.uid where day_login.dt='20130101' and day_regusers.uid is null;

hive实例讲解实现in和not in子句

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

我来说两句
评论内容:
验  证  码:
 
(网友评论仅供其表达个人看法,并不表明本站同意其观点或证实其描述。)
评论列表
已有 0 条评论(查看更多评论)
编辑推荐
本章目标 了解引用传递的深入应用 了解链表的基本概念 链表 链表是在数据结构中经常见到的一种形式
本章目标 深入链表的操作 深入理解内部类的应用 链表的改进 之前实现了一个简单单向链表,可是如果
本文目录: 一、概述 二、演示环境 三、JDK安装配置 四、安全证书配置 五、部署CAS-Server相关的Tom
本文目录: 一、概述 二、演示环境 三、JDK安装配置 四、安全证书配置 五、部署CAS-Server相关的Tom
我们沿用之前hadoop wordcount的结果数据: [hadoop@icity0 ~]$ hadoop fs -cat /wc/out/part-r-000
名词解释: 购物车,顾名思义,就是具有与超市中购物车相同功能的模块. 本例主要以实现购物车基本功能(
之前大家上网的ibatis官方网站:http://www.ibatis.com现在已经不再存在了,已经被MyBatis所替代htt
之前大家上网的ibatis官方网站:http://www.ibatis.com现在已经不再存在了,已经被MyBatis所替代htt
之前大家上网的ibatis官方网站:http://www.ibatis.com现在已经不再存在了,已经被MyBatis所替代htt
之前大家上网的ibatis官方网站:http://www.ibatis.com现在已经不再存在了,已经被MyBatis所替代htt
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号