gpt4 book ai didi

MySQL聚合函数将结果减少到单行

转载 作者:行者123 更新时间:2023-11-29 06:35:04 26 4
gpt4 key购买 nike

假设我有一个从体育结果表中选择事件和分数的 MySQL 查询:

SELECT event, score FROM results;

这会返回一个类似这样的表格:

Long jump / 350
50 M dash / 500

我还需要所有分数的总和,以便返回如下所示:

Long jump / 350 / 850
50 M dash / 500 / 850

我尝试将查询更改为如下所示:

SELECT event, score, SUM(score) AS total FROM results;

但这将返回减少为一行:

Long jump / 350 / 850

我如何获得我正在寻找的结果,它与原始查询的行数相同,但每行的列总和?

最佳答案

使用 GROUP BY 子句为事件列的每个不同值获取一行:

SELECT event, score, SUM(score) AS total FROM results GROUP BY event, score;

但我怀疑表中应该有一个 athlete_id,每个运动员的总数应该显示在总计列中。这可以通过加入一个使用 GROUP BY 子句的子选择来完成:

SELECT
r.athlete_id,
r.event,
r.score,
t.total
FROM
results r
INNER JOIN (
SELECT
r1.athlete_id,
SUM(r1.score) total
FROM
results r1
GROUP BY
r1.athlete_id
) t
ON
r.athlete_id = t.athlete_id;

关于MySQL聚合函数将结果减少到单行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25433009/

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