【发布时间】:2019-03-23 09:00:46
【问题描述】:
我有一个包含两个字段的数据集,我需要在其中创建密集排名。当 Field_1 不为空时,Field_2 为空,反之亦然。
Field_1 Field_2
a
1
2
3
4
b
7
8
9
c
15
20
25
我正在努力解决这个问题
Field_1 Field_2 Field_3
a 1
1 1
2 1
3 1
4 1
b 2
7 2
8 2
9 2
c 3
15 3
20 3
25 3
我可以使用以下行对数据进行排序:
row_number() over (partition by null order by Field_2,Field_1) as Field_3
但这并没有给我我正在寻找的密集排名。
【问题讨论】:
-
没有任何额外的列,我们怎么知道
1-4应该和a属于同一个组? -
叹息..这是一个粗略的数据集。提供的数据是一个示例,但我提供的
row_number是数据的排序方式。它是顺序的。我希望制定一个查询来填补 Field_1 中的空白,但我不想进行递归查询。
标签: sql teradata rank dense-rank