千家信息网

如何实现和not in子句

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,如何实现和not in子句,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。hive实例讲解实现in和not in子句目前hive不支持
千家信息网最后更新 2025年12月02日如何实现和not in子句

如何实现和not in子句,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。


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

目前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_reguserson 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_reguserson day_login.uid=day_regusers.uid where day_login.dt='20130101' and day_regusers.uid is null;

关于如何实现和not in子句问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

查询 用户 登陆 子句 字段 问题 只有 更多 帮助 解答 易行 简单易行 两个 内容 实例 小伙 小伙伴 就是 方法 注册表 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 典型的关系数据库系统的关键技术 上海网络技术开发大概费用 株洲it软件开发师培训机构 上海人口管理系统软件开发 上海网络技术开发服务 企业如何进入当地企业数据库 实时数据库厂商有哪些 网易MC的服务器 佳速度无数据库 cbm数据库高级检索使用方法 从软件开发转软件测试 珠海微商软件开发外包 数据库控制中授权的英文表示 gta 服务器手动刷新 永劫无间服务器维护可以更新吗 软件开发中架构cs 山东计算机网络技术专升本 华南x99主板能装服务器内存 pims数据库分析方法 数据库中三种数据模型表示形式 我的世界服务器的矿洞 公安部 网络安全大赛 网络运营者之间在网络安全 单片机与服务器通信 韩国 网络安全怎么样 戴尔服务器查看本机型号 杭州net软件开发哪家可靠 数据库的管理安全系统设计 幼儿园宣传周网络安全教育 考博 高级数据库技术
0