使用Maximun日期及其相应的信息

问题描述 投票:0回答:1

给出了以下客户表:

customerNumber  expireDate            versionNumber
111             2021-02-08 10:00:00       2
111             2022-02-08 10:00:00       2
111             2022-02-08 10:00:00       3
111             2023-02-08 10:00:00       2
111             2023-02-08 10:00:00       3
111             2023-02-08 10:02:00       2
111             2023-02-08 10:03:00       3
我有以下查询,我用来获取其Maximun到期日期的客户编号,其相应的版本编号:

SELECT customerNumber, MAX(expireDate), versionNumber FROM customers GROUP BY customerNumber;
i我按照说明进行了小组,因为可能有几个自定义数字。它返回:

customerNumber expireDate versionNumber 111 2023-02-08 10:03:00 2
虽然,这不是正确的输出。结果应输出:

customerNumber expireDate versionNumber 111 2023-02-08 10:03:00 3
为了获得其Maximun到期日期的客户编号,该查询应该如何使用其相应的版本编号?

sql mysql mariadb
1个回答
0
投票
如果您使用row_number,则可以选择最大到期日期的1行

WITH CTE AS ( SELECT customerNumber, expireDate, versionNumber, row_number() OVER (PARTITION BY customerNumber ORDER BY expireDate desc) as rn FROM customers ) SELECT customerNumber, expireDate, versionNumber FROM CTE WHERE rn=1

Fiddle

customernumber过期 versionnumber1112023-02-0810:03:003
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.