一句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

浙公网安备 33010602011771号