如何在 BigQuery 中使用窗口函数进行分组?

问题描述 投票:0回答:1

我试图找到数据集中每个访问 ID 内事件的值范围,其中每个访问 ID 都会返回一次。我正在使用这个代码:

SELECT 
visit_id
, min(event_start_datetime) over (partition by visit_id)
, max(event_start_datetime) over (partition by visit_id)
, max(event_start_datetime) over (partition by visit_id) - min(event_start_datetime) over (partition by visit_id)
FROM `table`

现在它多次返回每个访问id,这让我认为我应该按该列分组,尽管当我这样做时,由于窗口函数,它会给我一个错误。

我知道这很简单,但我错过了什么?

谢谢!

sql google-bigquery window-functions
1个回答
0
投票

听起来您应该在此处使用

GROUP BY
进行聚合,而不是使用聚合窗口函数:

SELECT
    visit_id,
    MIN(event_start_datetime) AS min_event_start_datetime,
    MAX(event_start_datetime) AS max_event_start_datetime,
    MAX(event_start_datetime) - MIN(event_start_datetime) AS delta
FROM yourTable
GROUP BY visit_id;
© www.soinside.com 2019 - 2024. All rights reserved.