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。