我有一个包含以下字段的表格
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(按顺序排序(,但它似乎没有帮助。尝试使用DenseRank,但没有用。
我想你只是想要dense_rank()
:
select t.*,
dense_rank() over (order by amount17, amount15, amount13) as courselist
from t;