根据模式分配唯一的行号

tcomlyy6  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(357)

我有一个包含以下字段的表

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

我试过按(order by)排号,但似乎没用。尝试使用denserank,但没有用。

6jjcrrmo

6jjcrrmo1#

我想你只是想 dense_rank() :

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

相关问题