У меня есть таблица, как показано ниже
![enter image description here](https://i.stack.imgur.com/KTGSv.png)
Я хочу добавить столбец seq_group
справа на основе значения stay
в каждой группе Item
.
![enter image description here](https://i.stack.imgur.com/7RRYe.png)
Для каждой группы элементов seq_group
начинается с 0, а когда seq_group > 8600
устанавливается как предыдущая строка seq_group + 1
, предложение else будет означать, что установлена предыдущая строка seq_group
.
Я реализовал это в spark sql, как показано ниже.
select
Item,
Stay,
case when Stay > 8600
then lag(seq_group,1) over (partition by Item order by ts) + 1
else lag(seq_group,1) over (partition by Item order by ts)
end as seq_group
from tableA
и в настоящее время получает результат, как показано ниже
![enter image description here](https://i.stack.imgur.com/NxRfX.png)
Любые указатели, которые могут это исправить, очень помогли бы