ARRAY_DIFFERENCE
更新时间:2025-10-17
描述
计算相邻数组元素之间的差异。返回一个数组,其中第一个元素将为 0,第二个元素是 a[1]-a[0]之间的差值。 注意若 NULL 值存在,返回结果为 NULL
语法
SQL
1ARRAY_DIFFERENCE(<arr>)
参数
| 参数 | 说明 |
|---|---|
<arr> |
用于相邻数组元素之间的差异的数组 |
返回值
返回一个数组。特殊情况:
- 如果 NULL 值存在,返回结果为 NULL
举例
SQL
1CREATE TABLE array_type_table (
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_type_table (k1, k2) VALUES
11(0, []),
12(1, [NULL]),
13(2, [1, 2, 3]),
14(3, [1, NULL, 3]),
15(4, [0, 1, 2, 3, NULL, 4, 6]),
16(5, [1, 2, 3, 4, 5, 4, 3, 2, 1]),
17(6, [6, 7, 8]);
18select *,array_difference(k2) from array_type_table;
Text
1+------+-----------------------------+---------------------------------+
2| k1 | k2 | array_difference(`k2`) |
3+------+-----------------------------+---------------------------------+
4| 0 | [] | [] |
5| 1 | [NULL] | [NULL] |
6| 2 | [1, 2, 3] | [0, 1, 1] |
7| 3 | [1, NULL, 3] | [0, NULL, NULL] |
8| 4 | [0, 1, 2, 3, NULL, 4, 6] | [0, 1, 1, 1, NULL, NULL, 2] |
9| 5 | [1, 2, 3, 4, 5, 4, 3, 2, 1] | [0, 1, 1, 1, 1, -1, -1, -1, -1] |
10| 6 | [6, 7, 8] | [0, 1, 1] |
11+------+-----------------------------+---------------------------------+
