gpt4 book ai didi

mysql - 用于从 2 个不同列中选择最大值的 SQL 查询

转载 作者:行者123 更新时间:2023-11-29 19:30:55 25 4
gpt4 key购买 nike

我在 SQL 作业中遇到了一个关于从具有不同类“字母”的同一个表中选择最大值的问题

例如:

ID    Student     Group    Avg(value)
-------------------------------------
1 stud1 A 9
2 stud2 A 9.5
3 stud3 B 8
4 stud4 B 8.5

我的查询应该做的是显示stud2和stud4。它们各自组的最大值。

我最终成功了,但是需要很多字符,所以我想也许有更短的方法可以做到。有任何想法吗?我曾经首先搜索 A 组中具有 max avg(value) 的 id 或螺柱,与 B 中具有 max avg(value) 的螺柱的 id 相交,然后将所有内容放入一个大选择中,然后使用相交的那些将 ID 放入另一个查询中,该查询请求显示有关这些 ID 的一些不同信息。但正如我所说,它看起来太长了,我认为也许有一条更短的路。

最佳答案

试试这个(我将 group 重命名为 grp,将 avg 重命名为 avg_val,因为这些是保留关键字):

select t1.*
from your_table t1
inner join (
select grp, max(avg_val) avg_val
from your_table
group by grp
) t2 on t1.grp = t2.grp
and t1.avg_val = t2.avg_val;

它找到每组的最大平均值并将其与原始表连接以获得相应的学生。

请注意,如果有多个学生的平均值与该组的最大值相同,则所有这些学生都将被返回。

关于mysql - 用于从 2 个不同列中选择最大值的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41781951/

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