私はスポーツ データベースに取り組んでおり、特定のカテゴリの名前と統計値を返すクエリを作成したいと考えています。たとえば、ゴール リーダー、アシスト リーダー、ポイント リーダー、+/- リーダー、ペナルティ ミニッツ リーダーなどです。特定のチームの選手名と統計を含む NJDSkaters というテーブルを使用しています。クエリコードは次のとおりです。
SELECT CONCAT(PlayerName,' - ',Goals) AS GoalLeader, CONCAT(PlayerName,' - ',Assists)
CONCAT(PlayerName,' - ',Points) AS PointsLeader
FROM NJDSkaters
WHERE Goals = (SELECT DISTINCT MAX(Goals) FROM NJDSkaters)
OR Assists = (SELECT DISTINCT MAX(Assists) FROM NJDSkaters)
OR Points = (SELECT DISTINCT MAX(Points) FROM NJDSkaters);
これは、このクエリによって返される必要があるプレーヤーを示す私のスケーター レジスタ テーブルのスニペットです。
ご覧のとおり、目的のリターン クエリでは、GoalLeader として「Ilya Kovalchuk - 37」、AssistLeader として「Patrik Elias - 52」、PointLeader として「Ilya Kovalchuk - 83」が返されます。クエリを実行するとこれらの結果が得られますが、ここに示すように、私が望まない追加情報が含まれています。
私の質問は、どうすれば余分な情報を取り除くことができますか? 各カテゴリのリーダーだけが必要で、他のカテゴリで 1 位であっても 2 位のプレイヤーはリストに表示されたくありません。基本的に、私が言いたいのは、このテーブルには 1 つの行だけが必要だということです。以前は、リーダーを先頭にしてすべてのプレイヤーを返すコードがあったため、このコードは目的の結果に一歩近づいたのですが、今は行き詰まっています。この問題に対する答えを探すことは、一般的に質問する方法を見つけるのが難しいため、困難でした。