SQL - 选择最常出现的值

时间:2012-10-09 18:51:58

标签: mysql sql

我有一个非常简单的数据库,由这些表组成。在这里,我试图编写一个查询来选择玩游戏桌中游戏最多的玩家。

通过查看下面的例子,您可以看出答案是Ben当然,因为PID 2(来自玩家表中的Ben)在Games表中出现次数最多,这意味着Ben赢得了最多的游戏。 / p>

但我不知道如何编写查询以选择Games表中最常见的值。

Players         Games          

PID | name      GID | PID
----|-----      ----|------
1   |  Al       A   |  3
2   |  Ben      A   |  2
3   |  Carl     A   |  2
4   |  Jack     A   |  1
5   |  Ron      A   |  4

有没有人有任何建议?谢谢!

2 个答案:

答案 0 :(得分:2)

好吧,加入玩家和游戏,计数,逐个玩家,按照计数desc排序(最好的第一个),如果你想要第一个,则限制为一个。

SELECT p.NID, p.name, COUNT(*)
FROM Players p
INNER JOIN Games g ON g.PID= p.NID
GROUP BY p.NID, p.name
ORDER BY COUNT(*) DESC
LIMIT 1;

答案 1 :(得分:1)

我猜这里没有计算,只是游戏表中的一个简单整数值表示玩家ID的游戏数量......

SELECT pl.name FROM Players pl join Games g ON pl.NID=g.GID
ORDER BY g.games DESC
limit 1;