gpt4 book ai didi

sql - 选择每个(Col1,Col2)的最大值

转载 作者:行者123 更新时间:2023-12-04 00:34:31 25 4
gpt4 key购买 nike

让我们假设下表:

Name             SubName        Message    Time
USA MA M1 1
USA NY M2 2
USA WA M3 3
USA MA M4 4
USA WA M5 5
USA NY M6 6
FIN HEL M7 7
FIN TAM M8 8
FIN HEL M9 9

我想要一个SQL查询,该查询将返回以下内容:
Name             SubName        Message    Time
FIN HEL M9 9
FIN TAM M8 8
USA NY M6 6
USA WA M5 5
USA MA M4 4

因此是 ORDER BY time DESC,它按不同的名称分组,并按不同的子名称分组。

这可能吗?我正在寻找一种不是特定于DBMS的解​​决方案-可以在大多数DBMS中运行的解决方案。

最佳答案

您没有标记您的RDBMS,因此对于适用于大多数RDBMS的ANSI-SQL,您可以使用ROW_NUMBER():

SELECT s.* FROM (
SELECT t.*,
ROW_NUMBER() OVER(PARTITION BY t.name,t.subname ORDER BY t.time DESC) as rnk
FROM YourTable
) s
WHERE s.rnk = 1
ORDER BY s.time DESC,s.name

编辑:这是Core ANSI SQL的答案,它可以在可以使用 NOT EXISTS()的任何数据库上运行:
SELECT * FROM YourTable t
WHERE NOT EXISTS(SELECT 1 FROM YourTable s
WHERE t.name = s.name and t.subname = s.subname
AND s.time > t.time)

关于sql - 选择每个(Col1,Col2)的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38874113/

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