Hive高级聚合之GROUPING SETS/ROLLUP/CUBE/Grouping_ID
2018-05-22 19:24
295 查看
1、GROUPING SETS
该关键字可以实现同一数据集的多重group by操作。事实上GROUPING SETS是多个GROUP BY进行UNION ALL操作的简单表达,它仅仅使用一个stage完成这些操作。GROUPING SETS的子句中如果包含()数据集,则表示整体聚合。示例:
select name, work_space[0] as main_place, count(employee_id) as emp_id_cnt from employee group by name, work_space[0] GROUPING SETS((name,work_space[0]), name, ()); // 上面语句与下面语句等效 select name, work_space[0] as main_place, count(employee_id) as emp_id_cnt from employee group by name, work_space[0] UNION ALL select name, work_space[0] as main_place, count(employee_id) as emp_id_cnt from employee group by name UNION ALL select name, work_space[0] as main_place, count(employee_id) as emp_id_cnt from employee;
2、ROLLUP
扩展了GROUTING SETS。
示例:
select a, b, c from table group by a, b, c WITH ROLLUP; // 等价于下面语句 select a, b, c from table group by a, b, c GROUPING SETS((a,b,c),(a,b),(a),());
3、CUBE
扩展了GROUTING SETS,对各种条件进行聚合。示例:
select a, b, c from table group by a, b, c WITH ROLLUP; // 等价于下面语句 select a, b, c from table group by a, b, c GROUPING SETS((a,b,c),(a,b),(a,c),(b,c),(a),(b),(c),());
4、聚合条件 HAVING
having用于在组内进行过滤。select cid,max(price) mx from orders group by cid having mx > 1000; //等价于下面的子查询语句 select t.cid, t.mx from ( select cid, max(price) mx from orders group by cid ) t where t.mx > 1000;
5、Grouping_ID
详解:https://www.geek-share.com/detail/2701264342.html相关文章推荐
- Hive高级聚合之GROUPING SETS/ROLLUP/CUBE
- Hive分析窗口函数(四) GROUPING SETS,GROUPING__ID,CUBE,ROLLUP
- Hive分析窗口函数(五) GROUPING SETS,GROUPING__ID,CUBE,ROLLUP
- Hive分析窗口函数(五) GROUPING SETS,GROUPING__ID,CUBE,ROLLUP
- Hive分析窗口函数(五) GROUPING SETS,GROUPING__ID,CUBE,ROLLUP
- Hive学习之路 (十七)Hive分析窗口函数(五) GROUPING SETS、GROUPING__ID、CUBE和ROLLUP
- Hive分析窗口函数(五) GROUPING SETS,GROUPING__ID,CUBE,ROLLUP
- Hive分析窗口函数(五) GROUPING SETS,GROUPING__ID,CUBE,ROLLUP
- Hive分析窗口函数(五) GROUPING SETS,GROUPING__ID,CUBE,ROLLUP
- Hive分析窗口函数(五) GROUPING SETS,GROUPING__ID,CUBE,ROLLUP
- Hive分析窗口函数(五) GROUPING SETS,GROUPING__ID,CUBE,ROLLUP
- HIVE分析窗口函数: GROUPING SETS,GROUPING__ID,CUBE,ROLLUP
- Hive学习之路 (十七)Hive分析窗口函数(五) GROUPING SETS、GROUPING__ID、CUBE和ROLLUP
- Hive_6. 数据聚合 -- Group By & Grouping_SETS & RollUp & CUBE & Having
- Hive分析函数之grouping sets、cube、rollup学习
- Hive分析窗口函数(五) GROUPING SETS,GROUPING__ID,CUBE,ROLLUP
- SQL Server ->> GROUPING SETS, CUBE, ROLLUP, GROUPING, GROUPING_ID
- PostgreSQL 分组集合新功能(GROUPING SETS,CUBE,ROLLUP)
- PostgreSQL 分组集合新功能(GROUPING SETS,CUBE,ROLLUP)
- rollup,cube,grouping,grouping_id