hive的strict模式;where,group by,having,order by同时使用的执行顺序

主要限制三种情况
(1) 有partition的表查询需要加上where子句,筛选部分数据实现分区裁剪,即不允许全表全分区扫描,防止数据过大
(2) order by 执行时只产生一个reduce,必须加上limit限制结果的条数,防止数据量过大造成1个reduce超负荷
(3) join时,如果只有一个reduce,则不支持笛卡尔积查询。也就是说必须要有on语句的关联条件,做自然连接。



group by和order by 同时使用,不会按组进行排序

where,group by,having,order by同时使用,执行顺序为

(1)where过滤数据
(2)对筛选结果集group by分组
(3)对每个分组进行select查询,提取对应的列,有几组就执行几次
(4)再进行having筛选每组数据
(5)最后整体进行order by排序
原文地址:https://www.cnblogs.com/cl1024cl/p/6205351.html