gpt4 book ai didi

mysql - 解决 MySQL 排名中的联系问题

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

我有一个看起来像这样的 MySQL 表:

GOALS
------------------------
PLAYER | GOALS
------------------------
001 | 30
002 | 25
003 | 25
004 | 20

我想要一个基于排名的评分系统,对于平局给予半分。在上面的示例中,它应该如下所示:

GOALS
-----------------------------------
PLAYER | GOALS | SCORE
-----------------------------------
001 | 30 | 4
002 | 25 | 2.5
003 | 25 | 2.5
004 | 20 | 1

如果是三向平局:

GOALS
-----------------------------------
PLAYER | GOALS | SCORE
-----------------------------------
001 | 30 | 5
002 | 25 | 3
003 | 25 | 3
004 | 25 | 3
005 | 20 | 1

在 mySQL 中如何完成这样的事情?

谢谢!

最佳答案

SELECT a.player, a.goals, (SUM(a.goals > b.goals) + 1 + SUM(a.goals >= b.goals))/2 AS score
FROM goals a
CROSS JOIN goals b
GROUP BY player

DEMO

这是有效的,因为 SUM(a.goals > b.goals) + 1 是所有平局玩家的最低排名,而 SUM(a.goals >= b.goals) 是最高排名。因此,对范围的两端进行平均即可得到分数。

关于mysql - 解决 MySQL 排名中的联系问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22307969/

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