|
|
| |
はじめまして。
最近GGAを使い始めました。
まだまだ勉強中なので的外れな質問であればご容赦下さい。
過去該当コースで設定したタイムよりも早い時計での好走経験がある馬を
抽出したいのですが例として東京芝 1400m 500万下で以下のSQL文を作成しました。
条件種類 条件名 対象 条件
開催情報 開催場所 今走 東京
レース情報 芝ダ障害コード 今走 芝
レース情報 距離 今走 1400〜1400
レース情報 条件 今走 500万下
[拡張]
(left(D番組_1.レースキー,2) = '05') AND D番組_1.距離 >= '1400' AND D番組_1.距離 <= '1400' AND (D番組_1.芝ダ障害コード = '1') AND (D番組_1.条件 = '05') AND D成績_1.タイム >= '000' AND D成績_1.タイム <= '1225' AND D成績_1.着順 >= 1 AND D成績_1.着順 <=5 OR (left(D番組_2.レースキー,2) = '05') AND D番組_2.距離 >= '1400' AND D番組_2.距離 <= '1400' AND (D番組_2.芝ダ障害コード = '1') AND (D番組_2.条件 = '05') AND D成績_2.タイム >= '000' AND D成績_2.タイム <= '1225' AND D成績_2.着順 >= 1 AND D成績_2.着順 <=5 OR (left(D番組_3.レースキー,2) = '05') AND D番組_3.距離 >= '1400' AND D番組_3.距離 <= '1400' AND (D番組_3.芝ダ障害コード = '1') AND (D番組_3.条件 = '05') AND D成績_3.タイム >= '000' AND D成績_3.タイム <= '1225' AND D成績_3.着順 >= 1 AND D成績_3.着順 <=5 OR (left(D番組_4.レースキー,2) = '05') AND D番組_4.距離 >= '1400' AND D番組_4.距離 <= '1400' AND (D番組_4.芝ダ障害コード = '1') AND (D番組_4.条件 = '05') AND D成績_4.タイム >= '000' AND D成績_4.タイム <= '1225' AND D成績_4.着順 >= 1 AND D成績_4.着順 <=5 OR (left(D番組_5.レースキー,2) = '05') AND D番組_5.距離 >= '1400' AND D番組_5.距離 <= '1400' AND (D番組_5.芝ダ障害コード = '1') AND (D番組_5.条件 = '05') AND D成績_5.タイム >= '000' AND D成績_5.タイム <= '1225' AND D成績_5.着順 >= 1 AND D成績_5.着順 <=5
基準となるタイムは過去の勝ち馬の平均からそれなりの数値を考え
1.22.5に設定しております。あと好走の定義はいろいろあるので仮に掲示板に
載るのが妥当と考え設定しました。
でも これだと過去5走前しか抽出できないので困っております。
該当する馬の全レースを対象にするのに方法が思いつかなく苦労しています。
何か良い方法があればご教授お願いいたします。
|
|
|
<Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR...@p7194-adsau08doujib4-acca.osaka.ocn.ne.jp>
|
|
|
せがp
- 06/5/7(日) 17:35 -
|
|
|
| |
うきょうさんへ
>はじめまして。
>
>最近GGAを使い始めました。
>まだまだ勉強中なので的外れな質問であればご容赦下さい。
>
>過去該当コースで設定したタイムよりも早い時計での好走経験がある馬を
>抽出したいのですが例として東京芝 1400m 500万下で以下のSQL文を作成しました。
>
>
> 条件種類 条件名 対象 条件
>
> 開催情報 開催場所 今走 東京
> レース情報 芝ダ障害コード 今走 芝
> レース情報 距離 今走 1400〜1400
> レース情報 条件 今走 500万下
> [拡張]
>
>
>(left(D番組_1.レースキー,2) = '05') AND D番組_1.距離 >= '1400' AND D番組_1.距離 <= '1400' AND (D番組_1.芝ダ障害コード = '1') AND (D番組_1.条件 = '05') AND D成績_1.タイム >= '000' AND D成績_1.タイム <= '1225' AND D成績_1.着順 >= 1 AND D成績_1.着順 <=5 OR (left(D番組_2.レースキー,2) = '05') AND D番組_2.距離 >= '1400' AND D番組_2.距離 <= '1400' AND (D番組_2.芝ダ障害コード = '1') AND (D番組_2.条件 = '05') AND D成績_2.タイム >= '000' AND D成績_2.タイム <= '1225' AND D成績_2.着順 >= 1 AND D成績_2.着順 <=5 OR (left(D番組_3.レースキー,2) = '05') AND D番組_3.距離 >= '1400' AND D番組_3.距離 <= '1400' AND (D番組_3.芝ダ障害コード = '1') AND (D番組_3.条件 = '05') AND D成績_3.タイム >= '000' AND D成績_3.タイム <= '1225' AND D成績_3.着順 >= 1 AND D成績_3.着順 <=5 OR (left(D番組_4.レースキー,2) = '05') AND D番組_4.距離 >= '1400' AND D番組_4.距離 <= '1400' AND (D番組_4.芝ダ障害コード = '1') AND (D番組_4.条件 = '05') AND D成績_4.タイム >= '000' AND D成績_4.タイム <= '1225' AND D成績_4.着順 >= 1 AND D成績_4.着順 <=5 OR (left(D番組_5.レースキー,2) = '05') AND D番組_5.距離 >= '1400' AND D番組_5.距離 <= '1400' AND (D番組_5.芝ダ障害コード = '1') AND (D番組_5.条件 = '05') AND D成績_5.タイム >= '000' AND D成績_5.タイム <= '1225' AND D成績_5.着順 >= 1 AND D成績_5.着順 <=5
>
>
>基準となるタイムは過去の勝ち馬の平均からそれなりの数値を考え
>1.22.5に設定しております。あと好走の定義はいろいろあるので仮に掲示板に
>載るのが妥当と考え設定しました。
>
>でも これだと過去5走前しか抽出できないので困っております。
>該当する馬の全レースを対象にするのに方法が思いつかなく苦労しています。
>
>何か良い方法があればご教授お願いいたします。
本家過去ログのただの使い回しですが、上記拡張に以下のSQLを貼り付けてみてください。
--------------------------------<ココカラ>--------------------------------
(SELECT COUNT(*) FROM (D番組データ AS D_B INNER JOIN D競走馬データ AS D_K ON D_B.レースキー = D_K.レースキー) INNER JOIN D成績データ AS D_S ON D_K.競走成績キー = D_S.競走成績キー WHERE ((D_K.血統登録番号=D競走馬データ.血統登録番号) AND (D_B.年月日 < D番組データ.年月日) AND (left(D_B.レースキー,2) = left(D番組データ.レースキー,2)) and (D_B.距離 = D番組データ.距離) and (D_B.芝ダ障害コード = D番組データ.芝ダ障害コード) AND (D_B.条件 = D番組データ.条件) and (D_S.タイム <= '1225') and (D_S.着順 <= 5)) GROUP BY D_K.血統登録番号) > 0
--------------------------------<ココマデ>--------------------------------
とりあえず検索通るように作ってみたので、抽出データの正当性の検証はしていません。
上記SQLでデータの正当性が確認できたなら、他の検索条件の場合の拡張の変更部分は
D_S.タイム <= '1225' の 「1225」を変えるだけでよいはずです。
蛇足かもしれませんが、ココの過去ログ、本家過去ログに、SNOWMANさんが書き込んだ
拡張SQLが有るのでメモ帳なんかにコピーして比べてみると、何となく規則性が解ってくるかも?
|
|
|
<Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NE...@ZK028213.ppp.dion.ne.jp>
|
|
 |
 |