の各年の平均値を示す行のリストを取得しましたので、 MYSQL - get a row for each year, with total sum for each monthのような鉱山に似た質問が多数見つかりましたが、私は別の方法を探していました。私はラーマンのデータベースを使用しており、毎年WARによるトップ10選手を探しています。私はその年齢の平均年齢を与えるために年齢を選んだプレーヤーを平均しています。私は毎年これをやろうとしていますが、私はそれをやる方法に固執しています。MYSQL
SELECT AVG(t.age) As AverageAge, w.yearID
FROM (SELECT w.playerID, w.age
From war_batting w, Master m
WHERE w.playerID = m.playerID AND w.yearID = 2012
ORDER by w.WAR desc
LIMIT 10) t,
war_batting w;
私は季節ごとのためにそれを行うために探していますので、これはそのシーズンのトップ10選手の平均を表示します。私がリンクしている記事では、彼らが必要とするすべての価値についてそれをしているのを見ていますが、私はほぼ150年間同じコードを繰り返さない方法を探しています。私はJavaとC++でプログラミングしてきました。当然のことながら、私は自分のものをループする方法を探していますし、現在の年までIDを1に増やしています。私はちょうどこれを行う方法を理解するために苦労しています。上記のコードでは、2012年ではなく2004年としてyearIDが返されますが、他のテストでもそうだと確信していますので、私はそれを修正する能力に自信があります。また、私が最初に投稿したときにコードブロックがうまく出てこない場合は、これが私の最初の投稿であるので、修正しようとします。それに参加する必要はありませんので、あなたはmaster
テーブルから何も選択していない
マスターは別のコードから残っていましたが、はい、私はそれを必要としません。あなたのサンプルに関しては年を経るが、毎年の平均年齢の値はすべて間違っている。なぜ私は確信していませんが、私は私が必要なものを得るためにこれで作業できるかどうかを見ていきます。 – ATV360
私は正直なところは分かりませんが、w.playerID = m.playerIDをwhereステートメントで削除すると、1年だけの値を検出するテストでは、number 1のプレーヤーの年齢が返されます。この10人の選手を見せても、彼には10回だけ表示されます。 – ATV360
このステートメントとマスターテーブルをプログラムに追加してみましたが、今は完全に機能しています。私はまだそれがなぜこの方法で動作するのか完全には分かっていないが、あなたの助けを借りてありがとう! – ATV360