gpt4 book ai didi

mysql - 无法从mysql中的记录中打印出最大值

转载 作者:行者123 更新时间:2023-11-30 22:58:40 27 4
gpt4 key购买 nike

我有下表:

THE_TABLE:
Fname | Lname | Value | Date
John Doe 200 20
John Doe 300 21
John Blah 200 19
John Blah 400 21

select Fname,Lname,max(value) from THE_TABLE group by Fname,Lname;

这仍然会打印出所有内容,而不是:

John        Doe       300        21
John Blah 400 21

如何根据Fname和Lname打印出最大值的记录?

编辑:是否可以在 where 语句中包含一个最大值?例如:where value=max(value)

最佳答案

如果您想要具有分组最大值的记录,那么您必须做更多的工作。一种方法是计算每组的最大值,然后将结果加入。还有另一种方法不使用 group by,可以更好地利用索引。这使用 不存在:

select tt.*
from the_table tt
where not exists (select 1
from the_table tt2
where tt2.fname = tt.fname and tt2.lname = tt.lname and
tt2.value > t.value
);

之所以可行,是因为每个名称的最大值都有一个很好的属性。没有其他具有相同名称的值更大。此查询可以利用 the_table(fname, lname, value);

上的索引

关于mysql - 无法从mysql中的记录中打印出最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25066064/

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