我在excel中创建了下表作为示例。我想在SQLServer中对一个外观相似的表执行类似的表达式(如excel中显示的公式)。列row_num和switch已经基于前面的创建 CASE
声明。
单击查看excel工作表
有没有办法做到这一点?
谢谢你看!
ps:如果图像不工作:
EXCEL | A | B | C |
1 |row_num | switch | group |
2 | 1 | 0 | 1 |
3 | 2 | 1 | 1 |
4 | 3 | 1 | 1 |
5 | 4 | 0 | 2 |
6 | 5 | 0 | 3 |
7 | 6 | 1 | 3 |
8 | 7 | 1 | 3 |
9 | 8 | 0 | 4 |
10 | 1 | 0 | 5 |
11 | 2 | 1 | 5 |
12 | 3 | 0 | 6 |
13 | 4 | 1 | 6 |
Formula on cell C3: IF(B3=1;C2;C2+1) (etc)
2条答案
按热度按时间yqyhoc1h1#
你想要一个案例的累计总和
switch = 0
.但是,sql表表示无序集。因此需要一列(或多列)来指定顺序。在您的示例中,可以使用excel行号,但您的数据可能有更合适的列。
因此:
如果
switch
只有两个值,您可以将其简化为:gopyfrb32#
我认为窗口总和可以满足你的要求:
如果你一直
0
/1
列中的值switch
,则可以简化: