BigQuery SQL Select返回键值对,而不是两个单独的列

时间:2018-06-25 05:29:42

标签: sql struct google-bigquery array-agg

我正在尝试在bigquery的select语句中合并2列,以使我有一列具有键值对,而不是两列(一列具有键,一列具有值)。 我试图使用array_agg(),但是每当执行此操作时,都会在我声明的第一行中导致错误: “表达式引用既不分组也不聚合的列colName”

任何有关如何执行此操作或可能导致我的array_agg错误的建议,将不胜感激。

1 个答案:

答案 0 :(得分:3)

您的问题信息有限,但无论如何我都会对此表示怀疑。这是一些使用数组,字符串连接和结构的示例:

#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 

enter image description here