Sye*_*que 2 sql google-bigquery
让我们每行我有一个在说id和两个数组array_1和array_2看起来像以下
SELECT 'a' id, [1,2,3,4,5] array_1, [2,2,2,3,6] array_2 UNION ALL
SELECT 'b', [2,3,4,5,6], [7,7,8,6,9] UNION ALL
SELECT 'c', [], [1,4,5]
Run Code Online (Sandbox Code Playgroud)

我想连接这两个数组,只保留新数组中的唯一元素。我想要的输出如下所示
+----+-----------+-----------+-----------------------------+
| id | array_1 | array_2 | concatenated_array_distinct |
+----+-----------+-----------+-----------------------------+
| a | 1,2,3,4,5 | 2,2,2,3,6 | 1,2,3,4,5,6 |
| b | 2,3,4,5,6 | 7,7,8,6,9 | 2,3,4,5,6,7,8,9 |
| c | | 1,4,5 | 1,4,5 |
+----+-----------+-----------+-----------------------------+
Run Code Online (Sandbox Code Playgroud)
我试图使用array_concat函数,但找不到使用该array_concat函数保留不同元素的方法。
无论如何我可以获得所需的输出?
下面是 BigQuery 标准 SQL
...我试图使用 array_concat 函数,但我找不到使用 array_concat 函数保留不同元素的方法。...
你在正确的轨道上:o)
#standardSQL
WITH `project.dataset.table` AS (
SELECT 'a' id, [1,2,3,4,5] array_1, [2,2,2,3,6] array_2 UNION ALL
SELECT 'b', [2,3,4,5,6], [7,7,8,6,9] UNION ALL
SELECT 'c', [], [1,4,5]
)
SELECT *,
ARRAY(SELECT DISTINCT x
FROM UNNEST(ARRAY_CONCAT(array_1, array_2)) x
ORDER BY x
) concatenated_array_distinct
FROM `project.dataset.table`
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2715 次 |
| 最近记录: |