一句SQL实现数据队列排名,连续的数据名次不变

 

 

最终效果实现

 

 

数据原型:

 

流水码

生产时间

物料号

1

333

2023-02-23 19:32:43

1000019879

2

341

2023-02-28 11:35:34

1000019879

3

342

2023-02-28 13:22:02

1000019879

4

379

2023-03-01 10:09:30

1000017939

5

381

2023-03-01 13:26:52

1000017939

6

383

2023-03-01 13:32:17

1000017939

7

388

2023-03-01 15:27:50

1000019879

 

说明: 本表是演示一个生产过程,123 行是一次连续生产,然后456 行又切换到另外一个规格,到第7行又切换了一个规格,只是这个规格和第一行的一致

 

需求:

求123行的 生产批次是1 , 456的生产批次是2, 第7行的生产批次是3

即下面的效果

 

流水码

生产时间

物料号

切换批次

1

333

2023-02-23 19:32:43

1000019879

1

2

341

2023-02-28 11:35:34

1000019879

1

3

342

2023-02-28 13:22:02

1000019879

1

4

379

2023-03-01 10:09:30

1000017939

2

5

381

2023-03-01 13:26:52

1000017939

2

6

383

2023-03-01 13:32:17

1000017939

2

7

388

2023-03-01 15:27:50

1000019879

3

 

要求是 一句SQL实现

 

 

实现过程如下:

 

demo表创建:

create table T30

(

id NUMBER not null,

created_date_time DATE not null,

item NVARCHAR2(255)

);

 

demo数据准备

INSERT INTO T30

(ID, CREATED_DATE_TIME, ITEM)

VALUES(333, TIMESTAMP '2023-02-23 19:32:43.000000', '1000019879');

INSERT INTO T30

(ID, CREATED_DATE_TIME, ITEM)

VALUES(341, TIMESTAMP '2023-02-28 11:35:34.000000', '1000019879');

INSERT INTO T30

(ID, CREATED_DATE_TIME, ITEM)

VALUES(342, TIMESTAMP '2023-02-28 13:22:02.000000', '1000019879');

INSERT INTO T30

(ID, CREATED_DATE_TIME, ITEM)

VALUES(379, TIMESTAMP '2023-03-01 10:09:30.000000', '1000017939');

INSERT INTO T30

(ID, CREATED_DATE_TIME, ITEM)

VALUES(381, TIMESTAMP '2023-03-01 13:26:52.000000', '1000017939');

INSERT INTO T30

(ID, CREATED_DATE_TIME, ITEM)

VALUES(383, TIMESTAMP '2023-03-01 13:32:17.000000', '1000017939');

INSERT INTO T30

(ID, CREATED_DATE_TIME, ITEM)

VALUES(388, TIMESTAMP '2023-03-01 15:27:50.000000', '1000019879');

 

select * from T30 t;

 

 

 

 

详细实现过程如下

https://articles.zsxq.com/id_fc6pv4krnnuu.html

 

 

posted @ 2023-03-01 17:15  网络来者  阅读(117)  评论(0)    收藏  举报