日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

有序集合函數

Hologres兼容PostgreSQL,支持使用標準的PostgreSQL語法進行開發。

命令語法

當前Hologres版本支持的函數是PostgreSQL的一個子集,函數的使用方法請參見有序集合函數

Hologres已支持的有序集合函數表達式如下。

GROUPING( <expr1> [ , <expr2> , ... ] )

參數說明

GROUPING是可以與聚合一起使用的實用程序函數,用于生成列的聚合級別:

  • GROUPING(expr) 若返回0,表示按照expr列進行了聚合,若返回1,表示未按照expr列進行聚合。

  • GROUPING(expr1,expr2,...exprN) 將會返回包含GROUPING(expr1),GROUPING(),...,GROUPING(exprN)的位向量的整數表示。

使用示例

  • 創建表并插入數據

    CREATE TABLE t1
    (
        col_x INT
        ,col_y INT
        ,col_z INT
    )
    ;
    
    INSERT INTO t1 VALUES(1, 2, 1), (1, 2, 3) ;
    
    INSERT INTO t1 VALUES(2, 1, 10), (2, 2, 11), (2, 2, 3) ;

    生成的數據如下所示:

    select * from t1 order by col_x, col_y, col_z;
     col_x | col_y | col_z 
    -------+-------+-------
         1 |     2 |     1
         1 |     2 |     3
         2 |     1 |    10
         2 |     2 |     3
         2 |     2 |    11
    (5 rows)
  • 使用樣例

    SELECT  col_x
            ,col_y
            ,SUM(col_z)
            ,grouping(col_x)
            ,grouping(col_y)
            ,grouping(col_x, col_y)
    FROM    t1
    GROUP BY grouping sets ((col_x), (col_y), ())
    ORDER BY 1,2;

    如下內容為輸出結果,其中,3表示二進制數11轉換為的整數。

     col_x | col_y | sum | grouping | grouping | grouping 
    -------+-------+-----+----------+----------+----------
         1 |       |   4 |        0 |        1 |        1
         2 |       |  24 |        0 |        1 |        1
           |     1 |  10 |        1 |        0 |        2
           |     2 |  18 |        1 |        0 |        2
           |       |  28 |        1 |        1 |        3
    (5 rows)