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
我有以下数据集:
我需要对条目进行分组。 (按日期排序并按列号 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