【问题标题】:BigQuery SQL Select that returns Key Value Pairs and not two seperate columnsBigQuery SQL Select 返回键值对而不是两个单独的列
【发布时间】:2018-06-25 05:29:42
【问题描述】:
我正在尝试在 bigquery 上的 select 语句中合并我的 2 列,以便我有一列带有键值对,而不是两列(一列带有键,一列带有值)。
我曾尝试使用 array_agg() 但每当我这样做时,都会在我的声明的第一行中导致错误:
"一个表达式引用了既不分组也不聚合的列 colName"
任何有关如何执行此操作或可能导致我的 array_agg 错误的建议将不胜感激。
【问题讨论】:
标签:
sql
struct
google-bigquery
array-agg
【解决方案1】:
您的问题中的信息有限,但无论如何我都会尝试一下。下面是一些使用数组、字符串连接和结构的示例:
#standardSQL
WITH
key_values AS (
SELECT
'key1' AS k,
'value1' AS v
UNION ALL
SELECT
'key2' AS k,
'value2' AS v)
SELECT
[k,
v] AS kv_array,
CONCAT(k,':',v) AS kv_concat,
STRUCT(k,
v) AS kv_struct
FROM
key_values