qq_41841004
qq_41841004
采纳率100%
2021-02-28 17:43

SQL语言(SQL SERVER),计算同一数据出现的周期

已采纳

计算字段blue上一次出现的周期

举例说明:比如说某一行blue=1,找到上一次blue=1,并用两次数据对应的ID做差得到我想要的数据

鄙人才学疏浅,期待偶遇大佬帮我用SQL语言解决这一问题

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • han404997715 卖火箭的小女孩 1月前

    你这个需求确实挺变态的,花了我好长时间,不过最后还是搞出来了。首先你需要一个临时表,这个表比你的主表多出来一个row_num的字段,这个字段是用来存放根据blue分组之后组内序号的。先执行insert select再执行下面的select。ps:我的环境是oracle语法方面可能有些差别,不过思路就是这样。

    点赞 1 评论 复制链接分享
  • qq_41841004 qq_41841004 1月前

    抱歉,抱歉是我没表达清楚,例如你说的第三行和第五行都是16,那第三行对应的数据应该是0(因为之前再没有16),第五行对应的应该是2(5-3=2),以此类推,就是blue找到和上一个相同的,找不到就是0,找到就用ID作差

    点赞 评论 复制链接分享
  • han404997715 卖火箭的小女孩 1月前

    兄弟,你这个需求我没看明白,第三行和第五行blue的值都是16,这个需要怎么算。地12行和地13行都是12,这个又要怎么算。说明白点,或者说你写一个你想要的结果出来

    点赞 1 评论 复制链接分享