gpt4 book ai didi

mysql - 如何添加多列并显示最大值?

转载 作者:行者123 更新时间:2023-11-29 07:22:04 25 4
gpt4 key购买 nike

在下面的代码中,我从 Ranks 表中添加了 Fanbase、coach、TeamRanks、Organization 和 Kicker。它返回每行的总和作为总数。但是,我不确定如何显示总计的最大值。我不需要完整的添加列表。

Select
ID,
(Fanbase + Coach + TeamRanks + Organization + Kicker) as total,
Fanbase,
Coach,
TeamRanks,
Organization,
Kicker
from Ranks;

这将返回每列的总计,但我需要最大值。总值。

Team     Fanbase    Coach    TeamRanks    Organization     Kicker


Chargers 80 60 29 18 10
Patriots 100 100 32 32 20
RAMS 80 90 30 25 23

最佳答案

您可以使用 ORDER BY DESCLIMIT 来完成此操作(并且不会从您的原始查询中派生太多)。

-- Assuming that ID=teamname
SELECT ID FROM
(SELECT
ID,
(Fanbase + Coach + TeamRanks + Organization + Kicker) AS total
FROM Ranks ORDER BY total DESC LIMIT 1) r;

更新: 我想到了一个查询,但我担心它可能无法在某些 MySQL 版本中运行,但现在我有时间尝试一下,它似乎在 MySQL 5.5 上运行良好、5.6、5.7 和 8.0。这个查询要短得多,而且没有使用子查询:

SELECT ID
FROM ranks
ORDER BY (Fanbase + Coach + TeamRanks + Organization + Kicker) DESC
LIMIT 1;

而且我还想指出,如果其中一列包含所有团队的 NULL 值;例如,如果所有 Kicker 值为 NULL,则此查询似乎不起作用。我检查了数学公式,如果 (Fanbase + Coach + TeamRanks + Organization + Kicker) = (10+ 10+ 20+ 30+ NULL) 它将返回 NULL 而不是 70。您可以添加像 IFNULL(场,0)。例如;

SELECT ID
FROM ranks
ORDER BY (IFNULL(Fanbase,0)+IFNULL(Coach,0)+IFNULL(TeamRanks,0)+IFNULL(Organization,0)+IFNULL(Kicker,0)) DESC
LIMIT 1;

但是,最好的方法当然是让您的字段默认为 0NOT NULL。在这里我只关心 What if ... ?

关于mysql - 如何添加多列并显示最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55799891/

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