根据模式分配唯一行号

Assign Unique Row Number based on pattern

我有一个 table 包含以下字段

CourseID  Amount17 Amount15 Amount13
100152  3000    2400    0
100204  3000    2400    0
100066  3000    2400    0
100066  3000    2400    1800
100067  3000    2400    1800
100343  3000    2400    1800
100126  3000    2400    1800
100022  3000    3000    0
100344  3000    3000    0
100050  3000    3000    0
100078  3000    3000    0

我想将匹配的三个金额列分组到一个列表中。我想要的输出

 CourseID  Amount17 Amount15 Amount13   CourseList
    100152  3000    2400    0            1
    100204  3000    2400    0            1
    100066  3000    2400    0            1
    100066  3000    2400    1800         2
    100067  3000    2400    1800         2
    100343  3000    2400    1800         2
    100126  3000    2400    1800         2
    100022  3000    3000    0            3
    100344  3000    3000    0            3
    100050  3000    3000    0            3
    100078  3000    3000    0            3

我已经尝试 row_number over(order by ) 但它似乎没有帮助。尝试使用 DenseRank 但没有用。

我想你只是想要 dense_rank():

select t.*,
       dense_rank() over (order by amount17, amount15, amount13) as courselist
from t;