要在BigQuery中找到每个组的滚动最新值,并找到每个组的最小值,您可以使用窗口函数和子查询来解决这个问题。
假设您有一个包含以下列的表:
首先,我们可以使用窗口函数来为每个组的行添加一个排序编号,根据时间戳降序排序。然后,我们可以使用子查询从排序编号为1的行中选择最新的值。
以下是一个示例查询的代码:
WITH ranked_rows AS (
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY group_id ORDER BY timestamp DESC) AS row_number
FROM
your_table
),
latest_values AS (
SELECT
group_id,
value
FROM
ranked_rows
WHERE
row_number = 1
)
SELECT
group_id,
value,
MIN(value) OVER (PARTITION BY group_id) AS min_value
FROM
latest_values
这个查询首先使用ROW_NUMBER
窗口函数为每个组的行分配一个排序编号。然后,使用子查询从排序编号为1的行中选择最新的值。最后,使用MIN
窗口函数在每个组中计算最小值。
请注意,您需要将示例代码中的your_table
替换为您实际使用的表名。