HiveQL中where后面的and 和or 处理
来源:互联网 发布:淘宝怎么购买二手店铺 编辑:程序博客网 时间:2024/05/21 06:13
昨天我在尝试写一个很简单的HiveQL:语句如下
select <!subdate(date,0)!>,a.ver,a.vid,a.wid,a.type,count(*) from (select stat_date,ver,get_json_object(json,"$.vid") as vid,get_json_object(json,"$.wid") as wid,get_json_object(json,"$.type") as type from iphonevv_<!subdate(date,0)!> where stat_date=<!subdate(date,0)!> and ver >= '3.5.0' and get_json_object(json,"$.type")=4 or get_json_object(json,"$.type")=5 or get_json_object(json,"$.type")=6 )a group by a.stat_date,a.ver,a.vid,a.wid,a.type
我的想法是:stat_date=<!subdate(date,0)!> and ver >= '3.5.0',后面的都是or就行,但是结果并不是这样,出现了很多ver不是大于等于3.5.0的,我纠结了很久,都不知道是哪儿出了问题,为什么ver >= '3.5.0' 不起作用呢?今天查了下才发现,原来是where后面的and和or的问题导致。
结果后来我修改为:
select <!subdate(date,0)!>,a.ver,a.vid,a.wid,a.type,count(*) from (select stat_date,ver,get_json_object(json,"$.vid") as vid,get_json_object(json,"$.wid") as wid,get_json_object(json,"$.type") as type from iphonevv_<!subdate(date,0)!> where stat_date=<!subdate(date,0)!> and ver >= '3.5.0' and (get_json_object(json,"$.type")=4 or get_json_object(json,"$.type")=5 or get_json_object(json,"$.type")=6 ))a group by a.stat_date,a.ver,a.vid,a.wid,a.type
将or的条件放在()之内,问题就解决了。
where 后面如果有and,or的条件,则or自动会把左右的查询条件分开,即先执行and,再执行or。原因就是:and的执行优先级最高!
关系型运算符优先级高到低为:not and or
问题的解决办法是:
用()来改变执行顺序!!!!
- HiveQL中where后面的and 和or 处理
- ibatis中where后面or 和 and 的联合使用
- mysql中left join on后面and和where条件查询的差异
- Hive-2.HiveQL查询中where和group by语句
- SQL的WHERE子句中包含多个AND和OR
- oracle中where中有and和or同时存在,and优先级高于or
- oracle where语句中and,or,not的执行顺序
- oracle where 后面的条件中|| 是什么意思
- 关于在join中的on后面用where和and的有关问题
- where and or
- SQL WHERE & AND & OR
- 优化mysql中where or和where in语句的效率
- 处女篇:sql语句中where和on后面条件顺序的问题
- [SQL]SQL Where语句中AND与OR的计算次序
- SQL: where条件中AND、OR运算符的组合使用
- sql: where条件中AND、OR运算符的组合使用
- mysql where 条件语句中的OR和AND的用法注意!
- mysql where 条件语句中的OR和AND的用法注意!
- 自定义标签案例
- C语言读写文件
- 读取Android Assets文本文件中的内容
- java面试题集锦
- LR在录制过程中打不开网页
- HiveQL中where后面的and 和or 处理
- checkbox 与 listview 等混用焦点问题
- todo
- c# winform 取消右上角关闭按钮方法
- 【IDE-Visual Studio】vs2010 -MFC-查看程序执行过程
- Qt创建文件夹
- 自定义标签库开发
- redhat快捷键【转】
- 真正的取真实IP地址及利弊