BigQuery SQL Select, который возвращает пары ключевых значений, а не два отдельных столбца

Я пытаюсь объединить 2 своих столбца в моем операторе select на bigquery, чтобы у меня был один столбец с парами ключевых значений, а не 2 столбца (один с ключом и один со значением). Я попытался использовать array_agg (), но всякий раз, когда я это делаю, в первой строке моего оператора появляется ошибка: «Выражение ссылается на столбец colName, который не сгруппирован и не агрегирован»

Мы будем очень благодарны за любые предложения относительно того, как это сделать или что может вызвать мою ошибку array_agg.


person s.m    schedule 25.06.2018    source источник
comment
Поделитесь своим SQL, примером ввода и желаемым выводом :)   -  person Graham Polley    schedule 25.06.2018
comment
Важно для SO - вы можете mark accepted answer поставить галочку слева от опубликованного ответа под голосованием. См. meta.stackexchange .com / questions / 5234 /, почему это важно! Когда у вас будет достаточно репутации на SO - голосуйте за полезные ответы. Есть еще ... Вы можете узнать, что делать, когда кто-то ответит на ваш вопрос - stackoverflow.com/help/someone-answers. Следуя этим простым правилам, вы увеличиваете свой собственный рейтинг репутации и в то же время сохраняете у нас мотивацию отвечать на ваши вопросы: o) пожалуйста, подумайте!   -  person Mikhail Berlyant    schedule 26.06.2018


Ответы (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 

введите здесь описание изображения

person Graham Polley    schedule 25.06.2018