【发布时间】:2019-10-21 11:14:06
【问题描述】:
我在 BigQuery 表中有一个 TIMESTAMP 类型的重复字段。我正在尝试 UNNEST 这个字段。但是,我必须按顺序对字段进行分组或聚合。我不熟悉 SQL,所以我可以使用一些帮助。代码 sn-p 是更大查询的一部分,当将 subscription.future_renewal_dates 替换为 GENERATE_TIMESTAMP_ARRAY
subscription.future_renewal_dates 是 ARRAY
TIMESTAMP 数组是唯一的(定期订阅),无法使用 GENERATE_TIMESTAMP_ARRAY 生成,因此我必须在上传到 BigQuery 之前生成日期。 UDF 太多了。
SELECT
subscription.amount AS subscription_amount,
subscription.status AS subscription_status,
"1" AS analytic_name,
ARRAY (
SELECT
AS STRUCT FORMAT_TIMESTAMP("%x", days) AS type_value, subscription.amount AS analytic_name
FROM
UNNEST(subscription.future_renewal_dates) as days
WHERE
(
days >= TIMESTAMP("2019-06-05T19:30:02+00:00")
AND days <= TIMESTAMP("2019-08-01T03:59:59+00:00")
)
) AS forecast
FROM
`mydataset.subscription` AS subscription
GROUP BY
subscription_amount,
subscription_status,
analytic_name
无法弄清楚如何成功取消订阅 subscription.future_renewal_dates 而不会出现错误“UNNEST 表达式引用了既不分组也不聚合的订阅.future_renewal_dates”
【问题讨论】:
标签: google-bigquery