ROW_NUMBER()OVER()在一个奇怪的地方分区



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

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_Number() Over(Partition by)来获得您可以看到的所需列。我需要Row_number由Header 2分割,但由Header 1的奇数分割。这有道理吗?反斜杠表示我希望分区在哪里,并且我希望能够在头1中选择要分区的数字。

我试着使用Lag,但我无法使用它。

我也试过这个:

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)

这将不均匀的header1s放在第一位,然后按header1的降序进行排序。

DB Fiddle上的演示

Header1|Header2|rn------:|------:|-:1|1|22|1|33|1|11|2|22|2|33|2|11|3|22|3|33|3|1

最新更新