gpt4 book ai didi

sql - 我怎样才能找到一个组的最大值的记录?

转载 作者:行者123 更新时间:2023-12-04 23:45:48 24 4
gpt4 key购买 nike

我正在尝试为具有许多连接的大型数据集编写查询,并且在没有某种子查询的情况下无法完成特定部分,我试图避免这种情况。

对于包含 ID、Size、Item 列的示例表,可能有多个具有相同 ID 的记录。我想返回具有最大尺寸的每个 ID 的记录。

ID  Size    Item
1 5 a
1 10 b
2 3 c
2 6 d
2 11 e
3 2 f

预期结果

ID  Size    Item
1 10 b
2 11 e
3 2 f

我已经尝试过各种团体和方法但没有成功。

使用子查询我可以这样做,但对于大型数据集我不想这样做

select id, size, item
from test
where size = (select max(size) from test t2 where id = test.id)

有什么建议吗?

最佳答案

这应该满足您的要求:对于每个 id,只返回具有最大大小的行

SELECT test.id, test.size, test.item
FROM test
INNER JOIN (
SELECT id, MAX(size) AS size
FROM test
GROUP BY id
) max_size ON max_size.id = test.id AND max_size.size = test.size

关于sql - 我怎样才能找到一个组的最大值的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7210317/

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