【发布时间】:2018-11-06 20:59:44
【问题描述】:
如果我有一张这样的桌子:
value1 | value2 | value3
-------|--------|-------
a | 1 |. z
a | 2 |. x
a. |. 3 |. z
a. |. 4 |. x
b. |. 1 |. x
b. |. 2 |. z
c. |. 1 |. z
c. |. 2 |. x
c. |. 3 |. z
而我想从中得到三个值的所有有序窗口,比如:
(a, [(1, z), (2, x), (3, z)]), (a, [(2, z), (3, z), (4, x)]), (c, [(1, z), (2, x), (3, z)])
使用 BigQuery,我将如何在跨多个唯一 value1 键的聚合中执行此操作并确保它们按 value2 排序。
所以我的查询是这样的:
SELECT
val1,
ARRAY_AGG(STRUCT(value2, value3)) vals
FROM my_table
然后我需要一个查询来覆盖它以获取三个值的所有分组。我假设我可以使用 ROW_NUMBER() 或其他东西,但我不确定是否有简单的方法来解决这个问题。
【问题讨论】:
标签: google-bigquery