给出了以下客户表:
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到期日期的客户编号,该查询应该如何使用其相应的版本编号?
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