gpt4 book ai didi

sql - 为不同的客户选择不同的最大ID

转载 作者:行者123 更新时间:2023-12-03 07:02:16 28 4
gpt4 key购买 nike

情况:

我们每月都有文件加载到我们的数据仓库中,但是这些文件不是被旧加载替换,而是相互编译。文件在几天内加载。

因此,在运行 SQL 脚本时,我们会得到重复的记录,因此为了抵消这种情况,我们运行超过 10-20 个“客户”的联合并选择 Max(loadID) 例如

SELECT
Customer
column 2
column 3

FROM
MyTable

WHERE
LOADID = (SELECT MAX (LOADID) FROM MyTable WHERE Customer= 'ASDA')

UNION


SELECT
Customer
column 2
column 3

FROM
MyTable

WHERE
LOADID = (SELECT MAX (LOADID) FROM MyTable WHERE Customer= 'TESCO'

上述联合必须为多个客户完成,所以我想肯定必须有一种更有效的方法。

我们不能在 SELECT 语句中使用 MAX (LoadID),因为可能出现以下情况;

周一:Asda、Tesco、Waitrose 加载到 DW(LoadID 为 124)

周二:Sainsburys 在 DW 中加载(LoadID 为 125)

周三:新的 Tesco 已加载到 DW(LoadID 为 126)

所以我想要 LoadID 124 Asda & Waitrose、125 Sainsburys 和 126 Tesco

最佳答案

使用窗口函数:

SELECT t.*
FROM (SELECT t.*, MAX(LOADID) OVER (PARTITION BY Customer) as maxLOADID
FROM MyTable t
) t
WHERE LOADID = maxLOADID;

关于sql - 为不同的客户选择不同的最大ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34334979/

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