0

これらのテーブルで構成される非常に単純なデータベースがあります。ここでは、ゲームテーブルから最も多くのゲームでプレイしたプレーヤーを選択するためのクエリを作成しようとしています。

以下の例を見るだけで、答えはもちろんベンであることがわかります。PID2(PlayersテーブルのBen)は、Gamesテーブルに最も多く表示され、Benが最も多くのゲームに勝ったことを意味します。

しかし、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

誰か提案はありますか?ありがとう!

4

2 に答える 2

2

さて、プレーヤーとゲームに参加し、カウントし、プレーヤーごとにグループ化し、カウントデスクごとに並べ替え(最初に大きい)、最初が必要な場合は1つに制限します。

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;
于 2012-10-09T18:55:22.723 に答える
1

カウントする必要はないと思います。Gamesテーブルの単純な整数値は、プレーヤーIDのゲーム数を示しています...

SELECT pl.name FROM Players pl join Games g ON pl.NID=g.GID
ORDER BY g.games DESC
limit 1;
于 2012-10-09T18:57:16.940 に答える