【发布时间】:2020-07-15 14:09:06
【问题描述】:
我正在尝试创建下面的行号,我尝试了很多选项,但似乎没有一个有效。我将不胜感激。
我希望行顺序查看 sub_id 并为每个执行一个序列号 1、2、3...然后我希望它查看磁盘,如果发生变化,请再次返回 1。我已经尝试将它们连接起来并使用一个键,但我似乎无法让它工作。
ID sub_id disc ROW_NUMBER
1 1 OT 1
1 1 OT 2
1 1 OT 3
1 2 DT 1
1 2 DT 2
1 3 SL 1
1 3 SL 2
1 4 PH 1
1 4 PH 2
1 4 OT 1
1 5 OT 1
1 5 PH 2
1 5 DT 1
1 6 DT 1
1 6 DT 2
1 6 DT 3
1 7 SL 1
1 7 SL 2
1 7 DT 1
1 8 SL 1
1 8 SL 2
1 8 SL 3
1 9 DT 1
1 9 DT 2
1 9 DT 3
1 10 PH 1
1 10 DT 1
1 10 DT 2
1 11 OT 1
1 11 OT 2
1 11 OT 3
1 12 OT 1
1 12 OT 2
1 12 OT 3
更新 row_number() OVER (PARTITION BY sub_id ORDER BY disc) 不起作用。 sub_id 变为 2 时排序出错。此时需要恢复为 1,但它是 2。
【问题讨论】:
-
“我已经尝试了很多选项,但似乎没有一个有效” 这些尝试是什么,您在问题中忽略了它们?您还标记了 2 个完全不同的 RDBMS,您真正使用的是 MySQL 还是 SQL Server?我已经删除了冲突的标签。请重新标记您实际使用的产品。
标签: sql sql-server sql-server-2017