获取最大和为3列的行-Mysql
我被一些查询逻辑卡住了。我有一张名为获取最大和为3列的行-Mysql,mysql,sql,logic,Mysql,Sql,Logic,我被一些查询逻辑卡住了。我有一张名为student的表格。表中有每个学期学生的分数。有n个学期。我需要获得每个学期最高分数(mark1+mark2+mark3)学生的姓名和id 这是我的桌子结构 需要的产出 我尝试获得maxmark 此查询将为您提供所需的结果。它将学生表连接到一个表中,该表中填写了每个学期的最高分数,仅显示该学期取得最高分数的学生(s2.maxmark=s1.mark1+s1.mark2+s1.mark3) 输出: id name mark1 mark2 mar
student
的表格。表中有每个学期学生的分数。有n
个学期。我需要获得每个学期最高分数(mark1+mark2+mark3)学生的姓名和id
这是我的桌子结构
需要的产出
我尝试获得maxmark
此查询将为您提供所需的结果。它将学生表连接到一个表中,该表中填写了每个学期的最高分数,仅显示该学期取得最高分数的学生(s2.maxmark=s1.mark1+s1.mark2+s1.mark3) 输出:
id name mark1 mark2 mark3 sem maxmark
2 John 10 8 10 1 28
5 Ammy 9 9 9 2 27
6 Kate 10 7 10 2 27
此查询将为您提供所需的结果。它将学生表连接到一个表中,该表中填写了每个学期的最高分数,仅显示该学期取得最高分数的学生(s2.maxmark=s1.mark1+s1.mark2+s1.mark3) 输出:
id name mark1 mark2 mark3 sem maxmark
2 John 10 8 10 1 28
5 Ammy 9 9 9 2 27
6 Kate 10 7 10 2 27
您必须按sem分组,以获得子查询中每个sem的最大标记,一旦获得每个sem的最大标记,您就可以在这样的子查询中使用in
SELECT *, mark1+mark2+mark3 AS maxmark
from student
where (sem, mark1 + mark2 + mark3) in (
SELECT sem, MAX(mark1 + mark2 + mark3) AS maxmark
FROM student
GROUP BY sem )
输出
|id| name | mark1| mark2| mark3| sem| maxmark|
|2 | John | 10 | 8 | 10 | 1 | 28 |
|5 | Ammy | 9 | 9 | 9 | 2 | 27 |
|6 | Kate | 10 | 7 | 10 | 2 | 27 |
你可以从互联网上了解更多关于,
祝你好运,希望这有帮助 您必须按sem分组,以获得子查询中每个sem的最大标记,一旦获得每个sem的最大标记,您就可以在这样的子查询中使用in
SELECT *, mark1+mark2+mark3 AS maxmark
from student
where (sem, mark1 + mark2 + mark3) in (
SELECT sem, MAX(mark1 + mark2 + mark3) AS maxmark
FROM student
GROUP BY sem )
输出
|id| name | mark1| mark2| mark3| sem| maxmark|
|2 | John | 10 | 8 | 10 | 1 | 28 |
|5 | Ammy | 9 | 9 | 9 | 2 | 27 |
|6 | Kate | 10 | 7 | 10 | 2 | 27 |
你可以从互联网上了解更多关于,
祝你好运,希望这有帮助 你有没有试图解决这个问题?如果您能与我们分享,那将非常有帮助。@GiorgosBetsos我只得到了获取马克斯的查询。我已经更新了答案Good try@SonyPathanamthitta只需要将组更改为sem即可开始…这种问题可能是设计不佳的症状。如果有第四个标记呢?或者,如果你想给每个学生取3分中最好的2分怎么办?你不必担心第4分。找到解决办法了。你有没有尝试过解决这个问题?如果您能与我们分享,那将非常有帮助。@GiorgosBetsos我只得到了获取马克斯的查询。我已经更新了答案Good try@SonyPathanamthitta只需要将组更改为sem即可开始…这种问题可能是设计不佳的症状。如果有第四个标记呢?或者,如果你想给每个学生取3分中最好的2分怎么办?你不必担心第4分。找到解决办法了。
|id| name | mark1| mark2| mark3| sem| maxmark|
|2 | John | 10 | 8 | 10 | 1 | 28 |
|5 | Ammy | 9 | 9 | 9 | 2 | 27 |
|6 | Kate | 10 | 7 | 10 | 2 | 27 |