将我的表放在Big query中,并在根据条件获取增量字段时遇到问题。
基本上,每次得分低于95%时,它都会在第一周返回阶段1。如果它连续第二周低于95%,它将返回阶段2,等等。但是,如果它高于95%,计数器将重置为“良好”。然后,如果低于95%,则返回阶段1,等等。

发布于 2021-03-27 02:16:18
您可以使用row_number() --但在根据每行>95%值的计数分配组之后:
select t.*,
(case when row_number() over (partition by grp order by month, week) = 1
then 'Good'
else concat('Stage ', row_number() over (partition by grp order by month, week) - 1)
end) as level
from (select t.*,
countif(score > 0.95) over (order by month, week) as grp
from t
) t;发布于 2021-03-27 03:23:28
请考虑以下内容
select * except(grp),
(case when Average_score >= 95 and 1 = row_number() over grps then 'Good'
else format('Stage %i', row_number() over grps - sign(grp))
end) as Level
from (
select *, countif(Average_score >= 95) over (order by Month, Week) as grp
from `project.dataset.table`
)
window grps as (partition by grp order by Month, Week) 如果应用于问题中的样本数据,则输出为

https://stackoverflow.com/questions/66822260
复制相似问题