基于两列创建数字规则
Create number sequence based on two columns
我正在尝试根据 2 列 Sno 和 UnitCost 生成数字序列。数字应该 运行 按顺序向下,但是当两列相同时它们不应该改变。但是,如果任何一列不同,它应该递增。
我用 row_number()
、rank()
、dense_rank()
尝试了一些东西,但无法找到正确的逻辑。
这是必需的列和现有的列:
Sno UnitCost RequiredColumn
ch01 10 01
ch01 10 01
ch02 20 02
ch02 20 02
ch02 30 03
ch02 30 03
ch03 10 04
有什么建议吗?谢谢
使用DENSE_RANK
:
SELECT Sno, UnitCost, DENSE_RANK() OVER (ORDER BY Sno, UnitCost) RequiredColumn
FROM yourTable;
我正在尝试根据 2 列 Sno 和 UnitCost 生成数字序列。数字应该 运行 按顺序向下,但是当两列相同时它们不应该改变。但是,如果任何一列不同,它应该递增。
我用 row_number()
、rank()
、dense_rank()
尝试了一些东西,但无法找到正确的逻辑。
这是必需的列和现有的列:
Sno UnitCost RequiredColumn
ch01 10 01
ch01 10 01
ch02 20 02
ch02 20 02
ch02 30 03
ch02 30 03
ch03 10 04
有什么建议吗?谢谢
使用DENSE_RANK
:
SELECT Sno, UnitCost, DENSE_RANK() OVER (ORDER BY Sno, UnitCost) RequiredColumn
FROM yourTable;