ARRAY_DISTINCT
更新时间:2025-10-17
描述
返回去除了重复元素的数组,如果输入数组为 NULL,则返回 NULL。
语法
SQL
1ARRAY_DISTINCT(<arr> )
参数
| 参数 | 说明 |
|---|---|
<arr> |
可能包含要删除的重复元素的数组 |
返回值
返回去除了重复元素的数组。特殊情况:
- 如果输入数组为 NULL,则返回 NULL。
举例
SQL
1CREATE TABLE array_test (
2 k1 INT,
3 k2 ARRAY<INT>
4)
5duplicate key (k1)
6distributed by hash(k1) buckets 1
7properties(
8 'replication_num' = '1'
9);
10INSERT INTO array_test VALUES
11(1, [1, 2, 3, 4, 5]),
12(2, [6, 7, 8]),
13(3, []),
14(4, NULL),
15(5, [1, 2, 3, 4, 5, 4, 3, 2, 1]),
16(6, [1, 2, 3, NULL]),
17(7, [1, 2, 3, NULL, NULL]);
18select k1, k2, array_distinct(k2) from array_test;
Text
1+------+-----------------------------+---------------------------+
2| k1 | k2 | array_distinct(k2) |
3+------+-----------------------------+---------------------------+
4| 1 | [1, 2, 3, 4, 5] | [1, 2, 3, 4, 5] |
5| 2 | [6, 7, 8] | [6, 7, 8] |
6| 3 | [] | [] |
7| 4 | NULL | NULL |
8| 5 | [1, 2, 3, 4, 5, 4, 3, 2, 1] | [1, 2, 3, 4, 5] |
9| 6 | [1, 2, 3, NULL] | [1, 2, 3, NULL] |
10| 7 | [1, 2, 3, NULL, NULL] | [1, 2, 3, NULL] |
11+------+-----------------------------+---------------------------+
SQL
1CREATE TABLE array_test01 (
2 k1 INT,
3 k2 ARRAY<VARCHAR>
4)
5duplicate key (k1)
6distributed by hash(k1) buckets 1
7properties(
8 'replication_num' = '1'
9);
10INSERT INTO array_test01 VALUES
11(1, ['a', 'b', 'c', 'd', 'e']),
12(2, ['f', 'g', 'h']),
13(3, ['']),
14(3, [NULL]),
15(5, ['a', 'b', 'c', 'd', 'e', 'a', 'b', 'c']),
16(6, NULL),
17(7, ['a', 'b', NULL]),
18(8, ['a', 'b', NULL, NULL]);
19select k1, k2, array_distinct(k2) from array_test01;
Text
1+------+------------------------------------------+---------------------------+
2| k1 | k2 | array_distinct(`k2`) |
3+------+------------------------------------------+---------------------------+
4| 1 | ['a', 'b', 'c', 'd', 'e'] | ['a', 'b', 'c', 'd', 'e'] |
5| 2 | ['f', 'g', 'h'] | ['f', 'g', 'h'] |
6| 3 | [''] | [''] |
7| 3 | [NULL] | [NULL] |
8| 5 | ['a', 'b', 'c', 'd', 'e', 'a', 'b', 'c'] | ['a', 'b', 'c', 'd', 'e'] |
9| 6 | NULL | NULL |
10| 7 | ['a', 'b', NULL] | ['a', 'b', NULL] |
11| 8 | ['a', 'b', NULL, NULL] | ['a', 'b', NULL] |
12+------+------------------------------------------+---------------------------+
