Hive03---Hive中的Grouping Sets用法

网友投稿 773 2022-09-02

Hive03---Hive中的Grouping Sets用法

Hive03---Hive中的Grouping Sets用法

统计报表中,通常会有多个维度组合,对应一个指标的情况,如指标-DAU,维度可能是{(APP),(APP、终端),(APP、版本号)}等等。如果每一种维度组合都建一张表,开发需要维护多个结果表,增加开发成本;也可以把不同的维度组合UNION ALL,这样ETL的脚本比较臃肿。Grouping Sets可以解决这个问题。   假设有一张用户埋点日志表:

SQL:

SELECT TO_CHAR(TO_DATE(ts,'yyyymmdd'),'yyyy-mm-dd') AS statistic_date, app, appver, form, os, grouping(app) AS g_app, grouping(appver) AS g_appver, grouping(form) AS g_form, grouping(os) AS g_os, grouping_id(app,appver,form,os) AS grouping_id, COUNT(DISTINCT device) AS DAUFROM tracking_dataWHERE ts=20190820GROUP BY app, appver, form, osGROUPINGSETS ((app,form),(app,form,appver),(app,form,os),(app,form,appver,os))

后续,可以根据​​g_app、g_appver、g_form、g_os​​​进行维度选择,不选则令​​g_*=1​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:杂感About DA
下一篇:【HDFS】-Window下保存文件报错
相关文章

 发表评论

暂时没有评论,来抢沙发吧~