2コース1着率の選手ランキング(2020年8月5日~2021年8月5日)

スポンサーリンク

はじめに

ボートレースのデータベースを構築することができ、これで欲しいデータを取得できるようになりました。

試しに2コース進入で強い選手をピックアップしてみました。

全1500選手の2コース進入回数と2コース1着回数と2コース1着率をデータベースから抽出し、Excelに出力しました。

集計期間は2020年8月5日から2021年8月5日までです。

Excelファイルはこちらです。

ちなみに1位は進入回数が4回で信頼できないので、以下がトップ5の選手になります。

順位選手名進入回数1着回数1着率
1渡邉  雄朗32160.5000
2高田 ひかる34150.4412
3上村  純一43180.4186
4山田  哲也41170.4146
5前本  泰和65260.4000

一応プログラミング中心のブログなのでデータベースの構築までの簡単な手順とデータベースからデータを抽出した時に書いたクエリを紹介します。

データベース構築までの流れ

サーバーの準備

データベースを構築するためにはサーバーが必要です。

私はブログとデータベースの両方をしたいため、Xserverで有料のレンタルサーバーを契約していますが、データベースの利用だけならXFREEという無料のレンタルサーバーでもいけるかもしれません(確認はしてません)。

データベースの準備

データベースというデータベースを貯めておく場所の準備は簡単です。

サーバーパネルのMySQL設定というところで追加しただけです。

次にデータを入力するテーブル(表)を作りました。

これは同じくサーバーパネルにあるphpMyAdminというアプリを使ってテーブルの追加をしました。

作ったテーブルは下の4つです。

  1. m_racerテーブル
    列名:id, name, class, branch(支部), …
  2. d_card(出走表)テーブル
    列名:race_date, jo_code, race_no, boat_no, racer_id, …
  3. d_course(進入コース)テーブル
    列名:race_date, jo_code, race_no, boat_no, course_no
  4. d_result(結果)テーブル
    列名:race_date, jo_code, race_no, boat_no, ranking

これらのデータがあればどんなデータも取ってこれるはずです。

データの準備

CSVファイル形式のレースれーたをテーブルにインポートするだけでデータをデータベースに入れることが出来ます。

データの抽出

phpMyAdminで以下のクエリを実行することで2コース1着率の全選手ランキングを取得できました。

クエリを書くことで、他にも「新概念データ」など知りたいデータを抽出することが出来ます。

結果はCSVで出力することが出来ました。

SELECT m_racer.id AS ID
    ,MAX(m_racer.name) AS Name
    ,MAX(m_racer.class) AS Class
    ,MAX(d_course.course_no) AS Course
    ,COUNT(*) AS Goukei
    ,SUM(
    CASE WHEN d_result.ranking=1 THEN 1
        ELSE 0
        END) AS Kaisuu
     ,   SUM(
    CASE WHEN d_result.ranking=1 THEN 1
        ELSE 0
        END)/COUNT(*) AS Rate
FROM m_racer
JOIN d_card
ON m_racer.id = d_card.racer_id
JOIN d_course
ON d_course.race_date = d_card.race_date
AND d_course.jo_code = d_card.jo_code
AND d_course.race_no = d_card.race_no
AND d_course.boat_no = d_card.boat_no
JOIN d_result
ON d_result.race_date=d_card.race_date
AND d_result.jo_code=d_card.jo_code
AND d_result.race_no=d_card.race_no
AND d_result.boat_no=d_card.boat_no
WHERE d_course.course_no = 2
GROUP BY m_racer.id
ORDER BY rate DESC;

まとめ

欲しいデータを取れるようになったので、これからいろんなデータを抽出してみようと思います。

欲しいデータがあればぜひコメント欄などにお願いします。

取れそうなデータであれば挑戦してみようと思います。

コメント

タイトルとURLをコピーしました