0

情報を追加するために変更:

「上位2つ取得」や「2番目に上位取得」といったSQLの質問と回答が投稿されていることが多いと思いますので、この質問が冗長である場合はあらかじめお詫びしますが、他の状況とは少し異なることをしたいと思います.私はせいぜいMySQLの愛好家なので、答えが明らかな人もいると思います。

野球選手の 1 シーズンの統計の行がたくさんあります。最高値のシーズンと 2 番目に高い値のシーズンを比較したいと思います。また、最高から 2 番目に高いものを引いて、2 つの季節を比較できるようにしたいと考えています。

もちろん、MAX を使用して最高値を簡単に取得できますが、私のような初心者にとっては、これは非常に困難です。


これまでお世話になりました。

関連するテーブル構造を単純化して、関連性を高めます。

playerid, Year, Value

プレイヤーの各シーズンは年ごとに分かれています。

クエリから返してほしいのは

Player id, 
Year [of Highest Value], 
Value [Highest], 
Year [of Second Highest Value], 
Value [Second-Highest]

それが十分に単純で明確であることを願っています。助けてくれてありがとう。

4

1 に答える 1

3

テーブルの構造を知らなくても、基本的に次のことができます。

SELECT score
FROM statstable
WHERE playerID=???
ORDER BY score DESC
LIMIT 2

これにより、スコアが最も高い2つの行が取得され、スコアを引き出してクライアントで減算できます。

別のクエリでユーザーにこのhighest-next_highest値が必要な場合は、もう少し複雑になります。

于 2011-11-09T15:44:08.753 に答える