gpt4 book ai didi

sql - 找到一个字段的值与另一字段中数据的最大值匹配

转载 作者:行者123 更新时间:2023-12-04 21:19:30 33 4
gpt4 key购买 nike

我正在尝试编写一个查询来获取一个字段的值,该字段与另一个字段(或多个字段)的 最大值 相关联。假设我有以下数据表:

OrderID CustomerID  OrderDate   LocationID          
1 4 1/1/2001 1001
2 4 1/2/2001 1003
3 4 1/3/2001 1001
4 5 1/4/2001 1001
5 5 1/5/2001 1001
6 5 1/6/2001 1003
7 5 1/7/2001 1002
8 5 1/8/2001 1003
9 5 1/8/2001 1002

CustomerID 分组,我想获得最大 OrderDate,然后是与最大 OrderDate< 相关联的 LocationID/。如果有多个记录共享最大订单日期,则从最大日期的记录中获取与最大 OrderID 关联的 LocationID

最终的数据集应如下所示:

CustomerID  OrderDate   LocationID      
4 1/3/2001 1001
5 1/8/2001 1002

我一直在尝试编写一个包含大量嵌套子查询和丑陋联接的查询,但我并没有真正做到。我需要写什么 SQL 来帮助我得到这个结果。

最佳答案

with cte As
(
select *,
row_number() over (partition by CustomerID
order by OrderDate desc, OrderId desc) as rn
from yourtable
)
select CustomerID, OrderDate,LocationID
from cte
where rn=1;

关于sql - 找到一个字段的值与另一字段中数据的最大值匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4769491/

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