gpt4 book ai didi

sql - 在具有复合主键的表中使用 MAX(DATE) 进行 GROUP BY

转载 作者:行者123 更新时间:2023-12-02 20:57:47 25 4
gpt4 key购买 nike

我试图在表格中列出每个 SKU 的条形码,但在某些情况下条形码是不同的,因此我想从一个 sku 获取一个条形码,并且返回的条形码应该是具有最新 UpdateDate 的条形码。

示例:

StoreID     SKU    BarCode           UpdateDate
-------------------------------------------------------------
1 95810 28471000000 10/06/2016 04:20:00 a.m.
1 95810 30040050033 01/03/2012 01:00:00 a.m.
2 44320 65453102001 15/05/2010 01:00:00 a.m.
2 44320 12343102001 01/01/2015 01:00:00 a.m.

期望的结果应该是:

StoreID     SKU    BarCode           UpdateDate
-------------------------------------------------------------
1 95810 28471000000 10/06/2016 04:20:00 a.m.
2 44320 12343102001 01/01/2015 01:00:00 a.m.

我尝试过使用

SELECT  
t.SKU, r.MaxTime
FROM
(SELECT
P.SKU, MAX(P.Fec_Movto) as MaxTime
FROM
Productos as P
GROUP BY
P.SKU) r
INNER JOIN
Productos t ON t.SKU = r.SKU AND t.Fec_Movto = r.MaxTime

但这里的问题是主键是复合主键,所以它根本不起作用。

最佳答案

可以使用 row_number 就像

select * from 
( select StoreID,SKU,BarCode,UpdateDate
,row_number() over ( partition by SKU order by UpdateDate desc) rowid
from Productos ) t
where rowid = 1

关于sql - 在具有复合主键的表中使用 MAX(DATE) 进行 GROUP BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39627318/

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