BigQuery SQL Select 返回键值对而不是两个单独的列
Posted
技术标签:
【中文标题】BigQuery SQL Select 返回键值对而不是两个单独的列【英文标题】:BigQuery SQL Select that returns Key Value Pairs and not two seperate columns 【发布时间】:2018-06-25 05:29:42 【问题描述】:我正在尝试在 bigquery 上的 select 语句中合并我的 2 列,以便我有一列带有键值对,而不是两列(一列带有键,一列带有值)。 我曾尝试使用 array_agg() 但每当我这样做时,都会在我的声明的第一行中导致错误: "一个表达式引用了既不分组也不聚合的列 colName"
任何有关如何执行此操作或可能导致我的 array_agg 错误的建议将不胜感激。
【问题讨论】:
请分享您的 SQL、示例输入和所需的输出 :) 【参考方案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
【讨论】:
以上是关于BigQuery SQL Select 返回键值对而不是两个单独的列的主要内容,如果未能解决你的问题,请参考以下文章