sql Hive HQL子句运行顺序及执行计划,别名
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql Hive HQL子句运行顺序及执行计划,别名相关的知识,希望对你有一定的参考价值。
-- 参考: http://www.cnblogs.com/jiangxiaoxian/p/7155636.html
-- hive语句执行顺序: from... where.... select...group by... having ... order by...
where,group by,having,order by同时使用,执行顺序为
(1)where过滤数据
(2)对筛选结果集group by分组
(3)对每个分组进行select查询,提取对应的列,有几组就执行几次
(4)再进行having筛选每组数据
(5)最后整体进行order by排序
-- 测试语句
SELECT
ad_id AS col1,
ad_uin AS col2,
COUNT( *) AS aggCol
FROM
dim.dim_szad_material_mapping
WHERE
dt = '2018-05-15'
-- [AND col1 = '0'] -- 无法使用别名
GROUP BY
-- [col1, col2] -- 无法使用别名, 因为别名的生效时机在group by之后, having之前
ad_id,
ad_uin
HAVING
col1 = '0' -- 可以使用别名
ORDER BY
col1 -- 可以使用别名
以上是关于sql Hive HQL子句运行顺序及执行计划,别名的主要内容,如果未能解决你的问题,请参考以下文章
大数据系列Hive安装及web模式管理
Spark SQL与Hive的关系
hive核心组件及流程(一)
hive的sql的执行计划。
hive高阶1--sql和hive语句执行顺序explain查看执行计划group by生成MR
【Hive】Hive Join 介绍