Google Bigquery SQL UNNEST и STRING_AGG - PullRequest
       0

Google Bigquery SQL UNNEST и STRING_AGG

0 голосов
/ 04 февраля 2020

Я пробовал следующий запрос:

SELECT STRING_AGG(inputs.addresses) as stringAgg, 
FROM `bigquery-public-data.crypto_bitcoin.transactions`
JOIN UNNEST (inputs) AS inputs
GROUP BY Date(block_timestamp)

Однако я получаю следующую ошибку:

Нет подходящей подписи для агрегатной функции STRING_AGG для типов аргументов: ARRAY. Поддерживаемые подписи: STRING_AGG (STRING); STRING_AGG (STRING, STRING); STRING_AGG (Bytes); STRING_AGG (BYTES, BYTES) в [2: 3] Подробнее о функциях BigQuery SQL.

Не знаете, как обойти это и получить список адресов, присутствующих в выходных данных. , Ошибка имеет смысл, учитывая тип адреса:
[выводы. адреса STRING REPEATED Адреса, которым принадлежит этот вывод.

1 Ответ

1 голос
/ 04 февраля 2020

inputs.addresses само по себе является массивом, поэтому вам также нужно UNNEST его
Например, как показано ниже

#standardSQL
SELECT 
  DATE(block_timestamp) AS block_date,
  STRING_AGG(address) AS stringAgg
FROM `bigquery-public-data.crypto_bitcoin.transactions`
JOIN UNNEST (inputs) AS input, UNNEST(input.addresses) address
GROUP BY DATE(block_timestamp)
LIMIT 10   

Очевидно, что выше подразумевается, что вы хотите собирать все адреса в день, так как в вашем исходном запросе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...