计算字段blue上一次出现的周期
举例说明:比如说某一行blue=1,找到上一次blue=1,并用两次数据对应的ID做差得到我想要的数据
鄙人才学疏浅,期待偶遇大佬帮我用SQL语言解决这一问题
你这个需求确实挺变态的,花了我好长时间,不过最后还是搞出来了。首先你需要一个临时表,这个表比你的主表多出来一个row_num的字段,这个字段是用来存放根据blue分组之后组内序号的。先执行insert select再执行下面的select。ps:我的环境是oracle语法方面可能有些差别,不过思路就是这样。
兄弟,你这个需求我没看明白,第三行和第五行blue的值都是16,这个需要怎么算。地12行和地13行都是12,这个又要怎么算。说明白点,或者说你写一个你想要的结果出来
抱歉,抱歉是我没表达清楚,例如你说的第三行和第五行都是16,那第三行对应的数据应该是0(因为之前再没有16),第五行对应的应该是2(5-3=2),以此类推,就是blue找到和上一个相同的,找不到就是0,找到就用ID作差