Google Bigquery SQL UNNEST 和 STRING_AGG

Google Bigquery SQL UNNEST and STRING_AGG

我尝试了以下查询:

1
2
3
4
SELECT STRING_AGG(inputs.addresses) AS stringAgg,
FROM `bigquery-public-data.crypto_bitcoin.transactions`
JOIN UNNEST (inputs) AS inputs
GROUP BY DATE(block_timestamp)

但是,我收到以下错误:

No matching signature for aggregate function STRING_AGG for argument
types: ARRAY. Supported signatures: STRING_AGG(STRING);
STRING_AGG(STRING, STRING); STRING_AGG(BYTES); STRING_AGG(BYTES,
BYTES) at [2:3] Learn More about BigQuery SQL Functions.

不确定如何解决此问题并获取输出中存在的地址列表。鉴于类型地址是:
[输出。地址 STRING REPEATED 拥有此输出的地址。


inputs.addresses 本身就是一个 ARRAY,所以你也需要 UNNEST 它
例如如下

1
2
3
4
5
6
7
8
#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

显然,上面假设您希望每天收集原始查询中的所有地址