我有一个包含以下信息的表:
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)
这将不均匀的header1
s放在第一位,然后按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