数据表中数据如下:
sid flag
---- ------
102 0
223 1
355 1
467 0
588 1
699 1
733 0
823 0
最后想要得到的数据如下 :
sid flag orderid
---- ------ -------
102 0 1
223 1 2
355 1 2
467 0 3
588 1 4
699 1 4
733 0 5
823 0 5
其中最主要的是orderid的值,是根据flag的值来变化的, 如果当前行的值与上一行的值不同,则加1,否则不变。
这个SQL如何写。
你的orderid应该不是从数据库中查的吧
如果不是,应该先把前两项的数据查出来,之后在缓存中整理和拼接
数据比较多,使用缓存与游标是可以实现,我是希望使用一条SQL来得出这个结果