首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Google-Bigquery中添加基于条件和条件重置的自动递增计数器

如何在Google-Bigquery中添加基于条件和条件重置的自动递增计数器
EN

Stack Overflow用户
提问于 2021-03-27 02:13:03
回答 2查看 93关注 0票数 0

将我的表放在Big query中,并在根据条件获取增量字段时遇到问题。

基本上,每次得分低于95%时,它都会在第一周返回阶段1。如果它连续第二周低于95%,它将返回阶段2,等等。但是,如果它高于95%,计数器将重置为“良好”。然后,如果低于95%,则返回阶段1,等等。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-27 02:16:18

您可以使用row_number() --但在根据每行>95%值的计数分配组之后:

代码语言:javascript
复制
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;
票数 0
EN

Stack Overflow用户

发布于 2021-03-27 03:23:28

请考虑以下内容

代码语言:javascript
复制
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)      

如果应用于问题中的样本数据,则输出为

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66822260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档