我试图找到数据集中每个访问 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,这让我认为我应该按该列分组,尽管当我这样做时,由于窗口函数,它会给我一个错误。
我知道这很简单,但我错过了什么?
谢谢!
听起来您应该在此处使用
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;