お馬の写真 別館

「お馬の写真」管理者による徒然なるブログ

DataLab.を使って「下級レースから順番に勝ち上がった馬」を探してみる (その3)

   

20090505_funabashi10_00

「DataLab.を使って「下級レースから順番に勝ち上がった馬」を探してみる」というテーマで過去2回(その1その2)、記事を書いてきました。その3回目。

前回の終わりに書いたように条件に対応した番号を取得できるようにテーブルを作ってみたいと思います。

まず元データのあるデータベースと今回の作業用のデータベースは分けるほうがいいと思うので、新規にデータベースを作成。データベース作成権限のあるアカウントで以下を実施。

CREATE DATABASE race_step;
GRANT ALL ON race_step.* TO 作業用ユーザー名;

次に作業用アカウントでログインし直して、テーブルを作成。

CREATE TABLE joken_step (
joken_code char(3) NOT NULL,
grade_code char(1) NOT NULL,
step int,
PRIMARY KEY(joken_code, grade_code));

データを投入。

INSERT INTO joken_step (joken_code, grade_code, step)
VALUES
('701', ' ', 1),
('702', ' ', 1),
('703', ' ', 1),
('004', ' ', 2),
('004', 'E', 2),
('005', ' ', 2),
('005', 'E', 2),
('009', ' ', 3),
('009', 'E', 3),
('010', ' ', 3),
('010', 'E', 3),
('014', ' ', 4),
('014', 'E', 4),
('015', 'E', 4),
('016', ' ', 4),
('016', 'E', 4),
('999', ' ', 5),
('999', 'E', 5),
('999', 'C', 6),
('999', 'D', 6),
('999', 'H', 6),
('999', 'B', 7),
('999', 'G', 7),
('999', 'A', 8),
('999', 'F', 8);

一応、確認。

SELECT DISTINCT b.joken_code, b.grade_code, b.step
FROM pckeiba.jvd_race_shosai a
JOIN joken_step b
ON a.kyoso_joken_code_saijakunen = b.joken_code
AND a.grade_code = b.grade_code
WHERE a.kaisai_nengappi>='1986-01-01'
AND a.data_kubun<>'B'
AND a.kyoso_shubetsu_code<'20'
AND a.kyoso_joken_code_saijakunen<>'000'
ORDER BY step;
+------------+------------+------+
| joken_code | grade_code | step |
+------------+------------+------+
| 703        |            |    1 |
| 702        |            |    1 |
| 701        |            |    1 |
| 004        |            |    2 |
| 005        |            |    2 |
| 005        | E          |    2 |
| 004        | E          |    2 |
| 010        | E          |    3 |
| 010        |            |    3 |
| 009        | E          |    3 |
| 009        |            |    3 |
| 014        |            |    4 |
| 015        | E          |    4 |
| 016        | E          |    4 |
| 014        | E          |    4 |
| 016        |            |    4 |
| 999        | E          |    5 |
| 999        |            |    5 |
| 999        | D          |    6 |
| 999        | H          |    6 |
| 999        | C          |    6 |
| 999        | G          |    7 |
| 999        | B          |    7 |
| 999        | A          |    8 |
| 999        | F          |    8 |
+------------+------------+------+

ここまでの情報を使って、新馬/未勝利/未出走(step=1)、400万/500万(step=2)、900万/1000万(step=3)、1400万/1500万/1600万(step=4)、オープン平場/オープン特別(step=5)、G3/JG3/重賞(step=6)、G2/JG2(step=7)、G1/JG1(step=8)の8通りのすべてを勝っている馬を洗い出してみます。

SELECT a.ketto_toroku_bango toroku, a.bamei bamei,
count(DISTINCT c.step) step
FROM pckeiba.jvd_umagoto_race_joho a
JOIN pckeiba.jvd_race_shosai b
ON a.race_code=b.race_code
JOIN joken_step c
ON b.kyoso_joken_code_saijakunen=c.joken_code
AND b.grade_code=c.grade_code
WHERE kakutei_chakujun=1
GROUP BY toroku
HAVING step=8;
+------------+-----------------------------+------+
| toroku     | bamei                       | step |
+------------+-----------------------------+------+
| 1993103900 | マサラッキ                  |    8 |
| 1994104132 | ダイタクヤマト              |    8 |
| 1996110113 | メイショウドトウ            |    8 |
| 1998102595 | ショウナンカンプ            |    8 |
| 2002102706 | エイシンデピュティ          |    8 |
| 2007100191 | ニホンピロアワーズ          |    8 |
+------------+-----------------------------+------+

6頭まで絞り込めたので、後は直接成績を見るほうが早そうです。

  • マサラッキ
    4歳未勝利→4歳500万→ゆうすげS(900万下)→渡月橋S(1500万下)→函館スプリントS(G3) ←残念!
  • ダイタクヤマト
    3歳未勝利→さざんか賞(500万下)→宝ケ池特別(900万下)→内房特別(900万下)→仲秋S(1600万下)→仲冬S(1600万下)→やまびこS(OP)→スプリンターズS(G1) ←残念!
  • メイショウドトウ
    4歳新馬→かいどう賞(500万下)→嵯峨野特別(900万下)→ドンカスターS(1600万下)→トヨタ賞中京記念(G3) ←残念!
  • ショウナンカンプ
    3歳未勝利→3歳上500万下→初霜特別(1000万下)→山城S(1600万下)→オーシャンS(OP)→高松宮記念(G1) ←残念!
  • エイシンデピュティ
    3歳未勝利→4歳上500万下→播磨特別(1000万下)→宝ケ池特別(1000万下)→心斎橋S(1600万下)→オーストラリアT(OP)→エプソムC(G3)→スポニチ賞京都金杯(G3)→金鯱賞(G2)→宝塚記念(G1) ←正解!
  • ニホンピロアワーズ
    3歳未勝利→3歳上500万下→響灘特別(1000万下)→堺S(1600万下)→天橋立S(1600万下)→祇園S(OP)→名古屋グランプリ(G2) ←残念!

ということで、最初から話が出ていたエイシンデピュティが正解、ということで。
本当は最後の1つずつステップアップ、というところまでSQLで書きたかったのですが、それでもなかなか楽しめました(笑)

記事一覧

DataLab.を使って「下級レースから順番に勝ち上がった馬」を探してみる (その1)
DataLab.を使って「下級レースから順番に勝ち上がった馬」を探してみる (その2)
DataLab.を使って「下級レースから順番に勝ち上がった馬」を探してみる (その3)

 - プログラミング