gpt4 book ai didi

mysql - 查询找到玩得最多的敌人

转载 作者:可可西里 更新时间:2023-11-01 08:35:54 24 4
gpt4 key购买 nike

我发现了某种在线游戏。现在我想展示一个统计数据,你可以看到谁是你最常对抗的敌人。

我已将游戏存储在数据库中。玩家存储在字段 PLAYER1 和 PLAYER2 中。这取决于哪一个邀请了另一个。开始游戏并邀请另一个人的是 PLAYER1。

ID | PLAYER1 | PLAYER2 | GAMESTATE

现在我有一些条目。假设我是玩家 1,我的 friend (2) 邀请了我两次,我也邀请了他一次。条目将如下所示:

1  | 2       | 1       | 1
2 | 2 | 1 | 1
3 | 1 | 2 | 1
4 | 3 | 4 | 1 <-- some other random game

现在,我想知道和我一起玩得最多的球员。我实际上需要一个选择来计算玩得最多的玩家,但在这两种情况下(PLAYER1 或 PLAYER2)。

单个查询的最佳解决方案是什么?我可以使用 MySQL UNION或分组依据?如果是,我该怎么办?

编辑:预期结果实际上是这样的:

PLAYER | MOST_ENEMY | GAMES
1 | 2 | 3
2 | 1 | 3
3 | 4 | 1
4 | 3 | 1

感谢您的帮助!

最佳答案

这是你想要的吗?

SELECT * FROM (
SELECT
PLAYER1,
PLAYER2,
COUNT(*) CNT
FROM
(
SELECT PLAYER1, PLAYER2 FROM matches
UNION ALL
SELECT PLAYER2 PLAYER1, PLAYER1 PLAYER2 FROM matches
) sub
GROUP BY
sub.PLAYER1,
sub.PLAYER2
) sub2
GROUP BY
sub2.PLAYER1
HAVING
sub2.CNT = MAX(sub2.CNT)

关于mysql - 查询找到玩得最多的敌人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12213077/

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