mysqlでの検索方法について
初めて質問をさせて頂きます。初心者にてどうにも行き詰ってしまいアドバイスを頂けたらと思います。
野球の打率ランキングを出したいのですが、最終的には下記の条件で抽出したいと思っております。
1位 A君 0.333 2006年
2位 B君 0.321 2008年
3位 C君 0.300 2007年
・・・
環境としましては、PHP4.4.4 MYSQL4.0(レンタルサーバー)
テーブル record
ID(INT)|選手番号(INT)|安打(INT)|打数(INT)|年度(INT)|試合番号(INT)|
1 | 1 | 1 | 1 | 2008 | 10 |
2 | 1 | 0 | 1 | 2008 | 10 |
・・・
というように、選手の1打席毎にレコードがあります。
また規定打数を試合数×3.1と設けて、その打数に達しないものは抽出しないようにしたいのです。
SELECT round(sum(安打) / sum(打数),3) as daritsu, 選手番号, 年度
FROM record
GROUP BY 選手番号, 年度
HAVING sum(打数) > count(distinct(試合番号)) * 3.1
ORDER BY daritsu DESC
LIMIT 0 , 10
と考えてみたものの、この場合は選手の出場試合数×3.1となってしまい、チームの試合数ではありません。行き詰っているのは、年度毎のチームの試合数に対して規定打数を設定することだと思います。
条件のような抽出が難しいようであれば、抽出後にPHPで処理という形でも構いませんので、アドバイスの程よろしくお願い致します。
補足
x_jouet_x様 失礼いたしました。 データを入力するのはphp側です。 その際、hit/dasu で入力していますが、0.333 となってしまいます。 0を除外するにはどうしたらよいでしょうか?