gpt4 book ai didi

sql - 使用 SQL 查找最大信息

转载 作者:行者123 更新时间:2023-12-04 19:15:42 26 4
gpt4 key购买 nike

我在 sql server 2008R2 数据库中有一个具有以下结构的表 X(有 >500k 记录):

Table X

很容易找到每个 UserAccountKey 的最大 mx:

SELECT 
UserAccountKey
, MAX(mx) mx2
FROM X
GROUP BY UserAccountKey

但我想修改上面的内容,使其在出现最大值时也具有记录的 SessionId 和 GamingServerId。

这是 SQL Fiddle 中的工作本.我追求的结果如下

enter image description here

如果可以避免,我宁愿不必在 mx 上JOIN;所以我假设循环是唯一的方法?

最佳答案

您可以使用 CTEROW_NUMBER窗口函数:

WITH cte AS(
SELECT
RN=ROW_NUMBER()OVER(PARTITION BY UserAccountKey ORDER BY mx DESC),
UserAccountKey,
SessionId,
GamingServerId,
mx
FROM X
)
SELECT
UserAccountKey,
SessionId,
GamingServerId,
mx
FROM cte
WHERE RN = 1

这是你的 fiddle :http://sqlfiddle.com/#!3/a9e0a/13

关于sql - 使用 SQL 查找最大信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11052485/

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