gpt4 book ai didi

mysql - 过滤重复记录并添加带有值(1 和 2)的附加列

转载 作者:行者123 更新时间:2023-11-29 15:21:11 24 4
gpt4 key购买 nike

我能够获取重复的记录,并且我想根据 createdate(最旧) 确定哪个项目是最旧的,在其中放入 1 和 2 值。

获取重复记录的示例脚本:

select pl5.refcode, pl5.barcode, pl5.name, pl5.status, pl5.createDate
from pList6 pl6
inner join plist5 pl5 on pl6.barcode = pl5.barcode
order by pl5.barcode, pl5.createDate;

输出:

refcode        barcode          ItemDescription       status        createDate
0075345 480000234512 Shampoo A A 2017-09-22 10:12:29
0002345 480000234512 Shampoo A A 2019-09-22 13:07:29
0010388 790000345217 Shampoo B A 2018-05-13 08:34:01
0023754 790000345217 Shampoo B A 2019-10-17 09:45:11

最终输出应如下所示:(添加值为 1 和 2 的附加列 SORT)

refcode      barcode          ItemDescription       status        createDate               sort
0075345 480000234512 Shampoo A A 2017-09-22 10:12:29 1
0002345 480000234512 Shampoo A A 2019-09-22 13:07:29 2
0010388 790000345217 Shampoo B A 2018-05-13 08:34:01 1
0023754 790000345217 Shampoo B A 2019-10-17 09:45:11 2

注意:

1和2,可以是任何值---我想要实现的是根据createdate

确定重复的项目

最佳答案

试试这个:

对于SQL Server:

select pl5.refcode, pl5.barcode, pl5.name, pl5.status, pl5.createDate
,ROW_NUMBER() OVER(PARTITION BY pl5.barcode ORDER BY pl5.createDate)[Sort]
from pList6 pl6
inner join plist5 pl5 on pl6.barcode = pl5.barcode
order by pl5.barcode, pl5.createDate;

对于 MySQL 试试这个:

创建临时表并将结果数据插入到临时表中。

CREATE TEMPORARY TABLE Temp1(..........)
INSERT INTO Temp1 SELECT ..........

那就试试这个吧。

SELECT 
A.*,
@cur:= IF(barcode=@id, @cur+1, 1) AS RowNumber,
@id := barcode
FROM
Temp1 A CROSS JOIN
(SELECT @id:=(SELECT MIN(barcode) FROM Temp1), @cur:=0) AS init
ORDER BY
A.barcode

关于mysql - 过滤重复记录并添加带有值(1 和 2)的附加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59367900/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com