gpt4 book ai didi

Mysql:计算胜利,但每个对手仅计算一次

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

我正在寻求在 SQL 查询中使用 sum() 的帮助:

任务:统计所有玩家的锦标赛获胜情况。 (每个玩家一个数字)(battles.result = 1 表示玩家 1 获胜)

SELECT members.id, members.name,
(
SELECT SUM(battles.result = 1)
FROM battles
WHERE members.id = battles.player1 AND battles.result=1 order by battles.gametime
( as wins,
FROM members

下一步:仅计算每两名玩家一个结果。

因此,如果两个玩家有多个结果,则仅计算第一个结果(第一个游戏时间)。

我已经尝试过使用 Battles.player2 的 order,但我想还有更好的解决方案吗?

最佳答案

您可以通过执行 join 轻松获得结果和 aggregation反而。尝试:

SELECT A.id, A.name, SUM(IFNULL(B.result,0)) wons
FROM members A LEFT JOIN battles B
ON A.id=B.player1
GROUP BY A.id, A.name;

关于Mysql:计算胜利,但每个对手仅计算一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48829898/

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