我有一张 table 。
生产、更改、日期
pr1, '是', 2012-01-01
pr1, '否' , 2012-02-01
pr1, '否' , 2012-03-01
pr1, '是', 2012-04-01
pr1, '是', 2012-05-01
pr1, '否' , 2012-06-01
我正在尝试构建一个 qry 并使用 row_number() 函数来对行进行编号。只是我需要 row_number() 来重置每次更改列的值为 yes 。然后 row_number() 计算必须从头开始。像这样
生产、更改、日期、row_number
pr1, '是', 2012-01-01, 1
pr1, '否' , 2012-02-01, 2
pr1, '否' , 2012-03-01, 3
pr1, '是', 2012-04-01, 1
pr1, '是', 2012-05-01, 1
pr1, '否' , 2012-06-01, 2
...等等
是否有可能仅使用 SQL 来执行类似的操作?我正在查看像 row_number() 这样的窗口函数(按日期排序、prd_prod、更改),但它不起作用。还有其他选择吗?
最佳答案
为了重置 row_number,您必须添加“PARTITION BY”
之前:
select RowOrder=ROW_NUMBER() OVER (ORDER BY WidgetTimeCreated)
之后:
select RowOrder=ROW_NUMBER() OVER (PARTITION BY WidgetType ORDER BY WidgetTimeCreated)
关于sql - 行号重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15900572/