gpt4 book ai didi

mysql - 如何选择每组中具有最大值的第一行?

转载 作者:行者123 更新时间:2023-11-29 09:38:52 24 4
gpt4 key购买 nike

我知道如何选择每组的最大值。但是当有多行具有相同的值时,我只想选择第一行,该怎么办?

例如,表格如下:

Group  Name  Value
A A1 20
A A2 20
A A3 10
B B1 20
B B2 30
B B3 30
B B4 10

我想要的结果是

A A1 20
B B2 30

最佳答案

不存在“第一行”这样的东西,因为 SQL 表代表无序集。因此,您需要一列来指定“第一”是什么。

您可以轻松获取一行行。一种方法是相关子查询:

select t.*
from t
where (name, value) = (select name, value
from t t2
where t2.group = t.group
order by t2.value desc
limit 1
);

在 MySQL 8+ 中,规范方法将使用 row_number():

select t.*
from (select t.*, row_number() over (partition by group order by value desc) as seqnum
from t
) t
where seqnum = 1;

关于mysql - 如何选择每组中具有最大值的第一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57083873/

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