multi_distinct_sum
multi_distinct_sum
説明
expr
内の重複を排除した値の合計を返します。sum(distinct expr)
と同等です。
構文
multi_distinct_sum(expr)
パラメータ
expr
: 計算に関与する列。列の値は以下の型であることができます:TINYINT、SMALLINT、INT、LARGEINT、FLOAT、DOUBLE、またはDECIMAL。
返り値
列の値と返り値の型の対応は以下の通りです:
- BOOLEAN -> BIGINT
- TINYINT -> BIGINT
- SMALLINT -> BIGINT
- INT -> BIGINT
- BIGINT -> BIGINT
- FLOAT -> DOUBLE
- DOUBLE -> DOUBLE
- LARGEINT -> LARGEINT
- DECIMALV2 -> DECIMALV2
- DECIMAL32 -> DECIMAL128
- DECIMAL64 -> DECIMAL128
- DECIMAL128 -> DECIMAL128
例
-
k0
をINTフィールドとして持つテーブルを作成する。CREATE TABLE tabl
(k0 BIGINT NOT NULL) ENGINE=OLAP
DUPLICATE KEY(`k0`)
COMMENT "OLAP"
DISTRIBUTED BY HASH(`k0`)
PROPERTIES(
"replication_num" = "3",
"storage_format" = "DEFAULT"
); -
テーブルに値を挿入する。
--
INSERT INTO tabl VALUES ('0'), ('1'), ('1'), ('1'), ('2'), ('2'); -
multi_distinct_sum()を使って
k0
列の重複を排除した値の合計を計算する。MySQL > select multi_distinct_sum(k0) from tabl;
+------------------------+
| multi_distinct_sum(k0) |
+------------------------+
| 3 |
+------------------------+
1 row in set (0.03 sec)k0
の重複を排除した値は0, 1, 2であり、それらを足すと3になります。