SQL 为数据集中的每个 "group" 重置 first_value

SQL reset first_value for each "group" in dataset

我有以下数据集:

我需要对条目进行分组。 (按日期排序并按列号 3 (419,440)。

我尝试了 window_function first_value,以获取每个排序组的第一个条目的时间戳,但我很难弄清楚如何“重置”该功能?

有人知道如何解决这个问题,有其他想法如何根据上面的列对数据集进行“分组”吗?

您似乎需要 col3 与上一行不同的最新值。如果这是正确的解释,您可以使用:

select t.*,
       max(case when col3 = prev_col3 then null else col4 end) over (order by col4)
from (select t.*,
             lag(col3) over (order by col4) as prev_col3
      from t
     ) t