Google bigquery BigQuery中字符串数组的差异
我试图使用标准SQL确定BigQuery中两个字符串数组之间的差异 比如说:Google bigquery BigQuery中字符串数组的差异,google-bigquery,Google Bigquery,我试图使用标准SQL确定BigQuery中两个字符串数组之间的差异 比如说: id cust_id orders high_value_orders 1 1 [a,b,c,d] [a,b] 我想做的是: id cust_id diff 1 1 [c,d] 基本上执行设置操作订单-高值订单 我已经尝试了一些东西,我知道它可能需要一些不必要的东西,但我不知道如何准确地编写它。任何帮助都将不胜感激。以下是Bi
id cust_id orders high_value_orders
1 1 [a,b,c,d] [a,b]
我想做的是:
id cust_id diff
1 1 [c,d]
基本上执行设置操作订单-高值订单
我已经尝试了一些东西,我知道它可能需要一些不必要的东西,但我不知道如何准确地编写它。任何帮助都将不胜感激。以下是BigQuery标准SQL
#standardSQL
SELECT *,
ARRAY(
SELECT element FROM (
SELECT DISTINCT element FROM t.orders element UNION ALL
SELECT DISTINCT element FROM t.high_value_orders element
)
GROUP BY element
HAVING COUNT(1) = 1
) AS diff
FROM `project.dataset.table` t
如果要应用于您的示例数据,请参见下面的示例
#standardSQL
WITH `project.dataset.table` AS (
SELECT 1 id, 1 cust_id, ['a','b','c','d'] orders, ['a','b'] high_value_orders
)
SELECT *,
ARRAY(
SELECT element FROM (
SELECT DISTINCT element FROM t.orders element UNION ALL
SELECT DISTINCT element FROM t.high_value_orders element
)
GROUP BY element
HAVING COUNT(1) = 1
) AS diff
FROM `project.dataset.table` t
结果是
谢谢@Mikhail Berlyant!