hive grouping函数_Merge函数

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

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.net/230880.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 信道容量计算公式_信道均衡算法

    信道容量计算公式_信道均衡算法信道带宽=符号率*符号数*(188/204)注释:符号率&lt–&gt频宽(下行欧标频宽8MHz,上行有1.6MHz,3.2MHz,6.4MHz三种频宽);符号数&lt–&gt调制方式(符号数=Log2~调制方式,如QAM64的符号数为6,2的6次方=64)=====================================================…

    2022年8月31日
    5
  • TCN代码随记(如何记代码)

    标题np.arange()np.arange()函数返回一个有终点和起点的固定步长的排列,如[1,2,3,4,5],起点是1,终点是6,步长为1。参数个数情况:np.arange()函数分为一个参数,两个参数,三个参数三种情况1)一个参数时,参数值为终点,起点取默认值0,步长取默认值1。2)两个参数时,第一个参数为起点,第二个参数为终点,步长取默认值1。3)三个参数时,第一个参数为起点,第二个参数为终点,第三个参数为步长。其中步长支持小数np.random.shufflenp.random

    2022年4月11日
    78
  • 彻底解决Intellij IDEA中文乱码问题(亲测成功)「建议收藏」

    关于JAVA IDE开发工具,Eclipse系列和Intelli IDEA是大部分公司的主要选择,从开发者的选择角度,Intellij IDEA似乎比Eclipse系列更受欢迎一些。当我们使用Intellij IDEA开发时,我们发现出现中文乱码问题,造成中…

    2022年3月13日
    2.9K
  • pycharm TODO_pycharm中如何注释掉代码块

    pycharm TODO_pycharm中如何注释掉代码块pycharm中可以在#后面加TODO提示自己后续的开发动作。点击pycharm又下角的小标签,会弹出一个列表,选择TODO选项。 进入TODO选项,可以看见所以设置的TODO,选择一个TODO进行单击,可以跳到该TODO设置的位置。…

    2022年8月26日
    10
  • cocos2dx lua热更新_cocos2d js

    cocos2dx lua热更新_cocos2d js下载LuaJit源码并编译成32位和64位下载地址:http://luajit.org/download.html进入LuaJIT-2.1.0-beta3执行如下指令:makesudomakeinstallsudoln-sfluajit-2.1.0-beta3/usr/local/bin/luajitkatichar@192LuaJIT-2.1.0-bet…

    2022年10月6日
    2
  • flash制作车轮转动的汽车沿着路径走的动画

    flash制作车轮转动的汽车沿着路径走的动画二维动画制作实验报告一.实验目的1.掌握动画的概念。2.熟练Flash的界面。3.掌握Flash界面中各组成元素和功能。二.实验工具    Flash三.实验要求制作车轮转动的汽车沿着路径走。四.实验内容1.搜索相关的素材,一个小汽车,将汽车的车轮和车身单独裁剪出来。2.首先,新建一个600×400的画布。将车轮和车身导入到库里。将车轮和车身拖入舞台,双击车轮进入编辑界面,在30帧新建关键帧,在中…

    2022年5月29日
    74

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号