【问题标题】:Google Bigquery SQL UNNEST and STRING_AGGGoogle Bigquery SQL UNNEST 和 STRING_AGG
【发布时间】:2020-02-04 04:39:52
【问题描述】:

我尝试了以下查询:

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 的参数没有匹配的签名 类型:数组。支持的签名:STRING_AGG(STRING); STRING_AGG(字符串,字符串); STRING_AGG(字节); STRING_AGG(字节, BYTES)在 [2:3] 了解有关 BigQuery SQL 函数的更多信息。

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

【问题讨论】:

    标签: sql google-bigquery


    【解决方案1】:

    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   
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多