Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 对行进行编号,并在特定条件下将计数器重置回1_Sql_Sql Server_Tsql_Window Functions - Fatal编程技术网

Sql 对行进行编号,并在特定条件下将计数器重置回1

Sql 对行进行编号,并在特定条件下将计数器重置回1,sql,sql-server,tsql,window-functions,Sql,Sql Server,Tsql,Window Functions,如何在SQL Server中对关键字重置计数器?在以下数据中,每次找到字符串“A”时,都需要将计数器重置为1: Item Date A 01.01.2019 B 02.01.2019 C 03.01.2019 D 04.01.2019 A 05.01.2019 B 06.01.2019 A 07.01.2019 B 08.01.2019 C 09.01.2019 D 10

如何在SQL Server中对关键字重置计数器?在以下数据中,每次找到字符串“A”时,都需要将计数器重置为1:

Item    Date
A       01.01.2019
B       02.01.2019
C       03.01.2019
D       04.01.2019
A       05.01.2019
B       06.01.2019
A       07.01.2019
B       08.01.2019
C       09.01.2019
D       10.01.2019
E       11.01.2019
A       12.01.2019
A       13.01.2019
A       14.01.2019
B       15.01.2019
每次找到A时,我都需要重置计数器:

Count    Item    Date
1        A       01.01.2019
2        B       02.01.2019
3        C       03.01.2019
4        D       04.01.2019
1        A       05.01.2019
2        B       06.01.2019
1        A       07.01.2019
2        B       08.01.2019
3        C       09.01.2019
4        D       10.01.2019
5        E       11.01.2019
1        A       12.01.2019
1        A       13.01.2019
1        A       14.01.2019
2        B       15.01.2019
比如:

以cte为例 选择*,COUNTCASE WHEN Item='A',然后选择1作为GroupNum按日期结束订单 从t 选择*,按GroupNum按日期排序的分区上的行数为[Count] 来自cte 按日期订购 cte为每一行分配一个运行计数,该计数在遇到错误时递增。行是基于此计数器分配的行编号


从你的问题样本来看,似乎总是A=1,B=2,C=3,等等。。。如果你的系列中没有漏洞,你能把A=>1,B=>2,C=>3等等映射出来吗?在同一天可以有多个项目吗?“A”项可以在一次约会中重复吗?我只是在简化我的问题。Item是批处理作业的名称,Date是时间戳。我有一系列子对象的日志条目,我需要找到来自同一批运行的日志条目。这有点棘手,因为由于错误,上一个作业并不总是相同的。始终定义起点A,但终点可以是D、B或A本身。