当前位置:   article > 正文

大数据--hive4--HiveSQL查询语法总结_hive 什么版本支持 不等式

hive 什么版本支持 不等式

目录

一:Hive SQL与SQL的区别

二:Hive表关联条件不支持不等值连接

三:桶或者簇

四:group by 数据分组

五:collect_list和collect_set用法

六:根据Hive Sql语句的执行顺序而进行的优化

七:SQL的join操作

八: UNION 和 union all 数据拼接

九:其他


一:Hive SQL与SQL的区别

1)用法上的区别:

  • HQL不支持行级别的增删改,所有数据加载的时候就已经确定,不可更改。
  • 不支持事务
  • 支持分区存储

2)hive的SQL特点:

  • HIve更适合于分析复杂的数据集。SQL更适合于快速分析不太复杂的数据集
  • hive执行时间长
  • 不支持不等值连接(放在下面展开讲,官网表示,hive2.2版本之后支持不等值关联语句)

        一般使用left join , right join , inner join替代

  • 不能职能识别concat(‘;’, key)因为;被当做SQL结束符号
  • HIVE SQL 中String类型的字段若是空字符串,即长度为0,那么对它进行is null的判断,

        其结果是false,我们可以使用left join进行筛选。

  • HIve中不支持‘ <  dt  < ’这种格式的范围查找,可以使用dt in (",")或者between替代

二:Hive表关联条件不支持不等值连接

(官网表示,hive2.2版本之后支持不等值关联语句)

关联时ON里面的条件如果含有不等值,那么在hive中不能直接使用,如果将不等式放在where条件中,

会出问题,直接将不等值放在where条件中会过滤掉主表的部分数据

解决方案:先通过inner join加上非等值条件,再left join.

错误示例:

  1. select t.id , t.date , t1.date
  2. from t
  3. left join t1
  4. on t1.id = t.id
  5. and t.date > t1.date

正确写法: 不等值的连接我们先用inner join, 然后等值的我们使用left join即可。

  1. select t.id, t.date, t2.date
  2. from t
  3. left join
  4. (select t.id,t1.date
  5. from t
  6. inner join t1 on t1.id = t.id
  7. where t.date>t1.date) t2
  8. on t.id =
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/833698
推荐阅读
相关标签
  

闽ICP备14008679号