Sql 在奇数位置进行的行数()OVER()分区

Sql 在奇数位置进行的行数()OVER()分区,sql,sql-server,window-functions,Sql,Sql Server,Window Functions,我有一张包含以下信息的表格: Header 1 | Header 2 | Desired Column 1 | 1 | 2 2 | 1 | 3 3 | 1 | / 1 1 | 2 | 2 2 | 2 | 3 3 | 2 | / 1 1 | 3 |

我有一张包含以下信息的表格:

Header 1 | Header 2 | Desired Column
    1    |    1     |      2
    2    |    1     |      3
    3    |    1     |   /  1
    1    |    2     |      2
    2    |    2     |      3
    3    |    2     |   /  1
    1    |    3     |      2
    2    |    3     |      3
    3    |    3     |   /  1
我正在尝试使用(分区依据)上的
Row\u Number()来获得您可以看到的所需列。我需要将行_编号按头2进行分区,但按头1的奇数进行分区。这有意义吗?反斜线表示我希望分区的位置,并且我希望能够选择头1中我希望分区的数字

我试着使用滞后,但我不能让它工作

我也试过:

ROW_NUMBER() OVER (PARTITION BY Header1 = 3, Header2) OVER (ORDER BY Header2, Header1)
希望您能理解,并且有人能找到解决方案。

我想您需要:

row_number() over(partition by header2 order by header1 % 2 desc, header1 desc)
这将首先放置标题1
s,然后按降序排序标题1

Header1 | Header2 | rn ------: | ------: | -: 1 | 1 | 2 2 | 1 | 3 3 | 1 | 1 1 | 2 | 2 2 | 2 | 3 3 | 2 | 1 1 | 3 | 2 2 | 3 | 3 3 | 3 | 1 校长1 |校长2 | rn ------: | ------: | -: 1 | 1 | 2 2 | 1 | 3 3 | 1 | 1 1 | 2 | 2 2 | 2 | 3 3 | 2 | 1 1 | 3 | 2 2 | 3 | 3 3 | 3 | 1 我想你想要:

row_number() over(partition by header2 order by header1 % 2 desc, header1 desc)
这将首先放置标题1s,然后按降序排序标题1

Header1 | Header2 | rn ------: | ------: | -: 1 | 1 | 2 2 | 1 | 3 3 | 1 | 1 1 | 2 | 2 2 | 2 | 3 3 | 2 | 1 1 | 3 | 2 2 | 3 | 3 3 | 3 | 1 校长1 |校长2 | rn ------: | ------: | -: 1 | 1 | 2 2 | 1 | 3 3 | 1 | 1 1 | 2 | 2 2 | 2 | 3 3 | 2 | 1 1 | 3 | 2 2 | 3 | 3 3 | 3 | 1