前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >hive grouping函数_Merge函数

hive grouping函数_Merge函数

作者头像
全栈程序员站长
发布2022-11-15 18:20:10
5990
发布2022-11-15 18:20:10
举报

Grouping函数: 可以接受一列,返回0或1。如果列值为空,则返回1,非空则返回0。它只能在rollup和或cube函数中使用,因为在统计中显示“全部”的那一项统计值时,那一项的标签通常是空的,这时grouping就非常有用,还可以在grouping的基础上进行decode, case等进行美化。

SQL> select grouping(index_type) g_ind, grouping(status) g_st, index_type, status, count(*) 2 from t group by rollup(index_type, status) order by 1, 2;

G_IND G_ST INDEX_TYPE STATUS COUNT(*) ———- ———- ————————— ——– ———- 0 0 LOB N/A 1 0 0 LOB VALID 572 0 0 FUNCTION-BASED NORMAL VALID 17 0 0 FUNCTION-BASED DOMAIN VALID 1 0 0 IOT – TOP VALID 115 0 0 CLUSTER VALID 10 0 0 NORMAL VALID 4557 0 0 NORMAL N/A 56 0 0 DOMAIN VALID 1 0 0 BITMAP VALID 8 0 0 BITMAP N/A 7 0 1 IOT – TOP 115 0 1 FUNCTION-BASED DOMAIN 1 0 1 DOMAIN 1 0 1 CLUSTER 10 0 1 BITMAP 15 0 1 FUNCTION-BASED NORMAL 17 0 1 NORMAL 4613 0 1 LOB 573 1 1 5345

20 rows selected

Grouping_id函数: 比grouping还强点,可以接收多个列,这几个列都不为空时,返回0,只要有一个为空,则返回1,如果都为空,则返回3。 下面这条查询把grouping_id牛刀杀鸡,当做grouping用了,可以看到结果跟用grouping是完全一样。

SQL> select grouping_id(index_type) g_ind, grouping_id(status) g_st, index_type, status, count(*) 2 from t group by rollup(index_type, status) order by 1, 2;

G_IND G_ST INDEX_TYPE STATUS COUNT(*) ———- ———- ————————— ——– ———- 0 0 LOB N/A 1 0 0 LOB VALID 572 0 0 FUNCTION-BASED NORMAL VALID 17 0 0 FUNCTION-BASED DOMAIN VALID 1 0 0 IOT – TOP VALID 115 0 0 CLUSTER VALID 10 0 0 NORMAL VALID 4557 0 0 NORMAL N/A 56 0 0 DOMAIN VALID 1 0 0 BITMAP VALID 8 0 0 BITMAP N/A 7 0 1 IOT – TOP 115 0 1 FUNCTION-BASED DOMAIN 1 0 1 DOMAIN 1 0 1 CLUSTER 10 0 1 BITMAP 15 0 1 FUNCTION-BASED NORMAL 17 0 1 NORMAL 4613 0 1 LOB 573 1 1 5345

20 rows selected

下面这条查询才体现了grouping_id的作用。

SQL> select grouping_id(index_type, status) g_st, index_type, status, count(*) 2 from t group by rollup(index_type, status) order by 1, 2;

G_ST INDEX_TYPE STATUS COUNT(*) ———- ————————— ——– ———- 0 BITMAP VALID 8 0 BITMAP N/A 7 0 CLUSTER VALID 10 0 DOMAIN VALID 1 0 FUNCTION-BASED DOMAIN VALID 1 0 FUNCTION-BASED NORMAL VALID 17 0 IOT – TOP VALID 115 0 LOB N/A 1 0 LOB VALID 572 0 NORMAL N/A 56 0 NORMAL VALID 4557 1 BITMAP 15 1 CLUSTER 10 1 DOMAIN 1 1 FUNCTION-BASED DOMAIN 1 1 FUNCTION-BASED NORMAL 17 1 IOT – TOP 115 1 LOB 573 1 NORMAL 4613 3 5345

20 rows selected

根据grouping_id接收不同的列的组合,可以美化出很神奇的结果。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/230880.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022年10月31日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
物联网
腾讯连连是腾讯云物联网全新商业品牌,它涵盖一站式物联网平台 IoT Explorer,连连官方微信小程序和配套的小程序 SDK、插件和开源 App,并整合腾讯云内优势产品能力,如大数据、音视频、AI等。同时,它打通腾讯系 C 端内容资源,如QQ音乐、微信支付、微保、微众银行、医疗健康等生态应用入口。提供覆盖“云-管-边-端”的物联网基础设施,面向“消费物联”和 “产业物联”两大赛道提供全方位的物联网产品和解决方案,助力企业高效实现数字化转型。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档