Hive sql书写注意问题

1. on where过滤是非分明
在left join时候 过滤条件在on中和在where中有天壤之别,on中不会做过滤,只是影响非驱动表所有字段在不满足条件时的取值,但是where会做记录的去除

2. in not in if()对于null值的问题
tableA.name not in ('xx') 和tableA.name in ('xxx',null),都会将name值为null的排除掉;if(null,1,0)返回0。null =null 返回null,切忌判断null使用is。

3. join优化
join时候小表在前,大表在后;如果驱动表够小,建议做map端join优化

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,009评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,779评论 18 399
  • 一. Java基础部分.................................................
    wy_sure阅读 3,839评论 0 11
  • Spark SQL, DataFrames and Datasets Guide Overview SQL Dat...
    Joyyx阅读 8,353评论 0 16
  • 教了几个学生,有成人,有少年,在巩义市体育馆东边三楼上习书法。 学生问:怎么能快速学会书法? 我:你们觉得什么才是...
    邰先明书法阅读 1,030评论 1 1