5003.本日の逃げの狙い目 - takobouzu/BOAT_RACE_DB GitHub Wiki

Home > 5000.検索用SQL

本日の逃げの狙い目

本日の全レースで1号艇の直近能力値が1位のケースを出力する。

例.2021.02.11の逃げの狙い目

江戸川が中止なので、対象27レース中、21レースが的中。

SQLコード

/*
【ファイル】 本日の逃げ予想.sql
【機能仕様】 本日施行される出走表の一覧を表示する
【パラメタ】  today(TextValue ):		本日の日付
*/

/* 検索パラメタテーブル _Parametersの生成 */
DROP TABLE  IF EXISTS _Parameters;
CREATE TEMP TABLE _Parameters(Name TEXT PRIMARY KEY, RealValue REAL, IntegerValue INTEGER, BlobValue BLOB, TextValue TEXT) ;

/* 検索パタメータの登録 */
INSERT INTO _Parameters(Name) VALUES ('today');
UPDATE _Parameters set TextValue = (SELECT strftime('%Y%m%d', 'now') as strftime) WHERE Name = 'today';

/* 検索SQL */
WITH QUERY_A AS (
    SELECT
        x_race_t.yyyymmdd as 年月日,
        x_race_t.pool_code as 場コード,
        x_race_t.pool_name as 場名,
        x_race_t.grade as グレード,
        x_race_t.holding as 開催区分,
        x_race_t.title as タイトル,
        x_race_t.event_date as 開催日,
        x_race_h.race_no as レース番号,
        x_race_h.scheduled_deadline as 投票締切時刻,
        x_race_h.race_name as レース名,
        x_race_d.entry_no as 艇番,
        x_race_d.player_no as 選手登録番号,
        x_race_d.player_name as 選手名,
        x_race_d.class as 級別,
        x_race_d.area as 支部,
        x_race_d.player_native_place	as 出身地,
        x_race_d.age as 年齢,
        x_race_d.body_weight as 体重,
        x_race_d.flying_count as フライング回数,
        x_race_d.lost_count as 出遅れ回数,
        x_race_d.st as 平均スタートタイミング,
        x_race_d.nationwide_win_rate as 全国勝率,
        x_race_d.nationwide_double_rate as 全国二連率,
        x_race_d.nationwide_triple_rate as 全国三連率,
        x_race_d.local_win_rate as 当地勝率,
        x_race_d.local_double_rate as 当地二連率,
        x_race_d.local_triple_rate as 当地三連率,
        x_race_d.motor_no as モーター番号,
        x_race_d.motor_double_rate as モーター二連率,
        x_race_d.motor_triple_rate as モーター三連率,
        x_race_d.boat_no as ボート番号,
        x_race_d.boat_double_rate as ボート二連率,
        x_race_d.boat_triple_rate as ボート三連率	
    FROM x_race_t, x_race_h,x_race_d
    WHERE x_race_t.yyyymmdd =  (SELECT TextValue FROM _Parameters WHERE Name = 'today')
    AND (x_race_t.yyyymmdd = x_race_h.yyyymmdd AND x_race_t.pool_code = x_race_h.pool_code)
    AND (x_race_h.yyyymmdd = x_race_d.yyyymmdd AND x_race_h.pool_code = x_race_d.pool_code AND x_race_h.race_no = x_race_d.race_no)
    ORDER by x_race_t.yyyymmdd ASC, x_race_t.pool_code ASC, x_race_h.race_no ASC,x_race_d.entry_no ASC
),QUERY_B AS (
	SELECT * FROM (
		SELECT
			t_index.player_no as 選手登録番号2,
			t_index.ability as 能力指数,
			t_index.st as 平均ST,
			t_index.ability_count as 出走数,
			t_index.ability2 as 直近・能力指数,
			t_index.st2 as 直近・平均ST,
			t_index.ability2_count as 直近・出走数,
			t_index.rate_win_motor as 直近・モーター勝率,
			t_index.rate_win_count as 直近・勝率,
			t_index.motor_count1 as モーター・出走数・1コース,
			t_index.motor_count2 as モーター・出走数・2コース,
			t_index.motor_count3 as モーター・出走数・3コース,
			t_index.motor_count4 as モーター・出走数・4コース,
			t_index.motor_count5 as モーター・出走数・5コース,
			t_index.motor_count6 as モーター・出走数・6コース,
			t_index.rate_win_motor_course1 as モーター・勝率・1コース,
			t_index.rate_win_motor_course2 as モーター・勝率・2コース,
			t_index.rate_win_motor_course3 as モーター・勝率・3コース,
			t_index.rate_win_motor_course4 as モーター・勝率・4コース,
            t_index.rate_win_motor_course5 as モーター・勝率・5コース,
			t_index.rate_win_motor_course6 as モーター・勝率・6コース,
			t_index.course_count_1 as 出走数・1コース,
			t_index.ability_course_1 as 能力指数・1コース,
			t_index.sinnyu_course_1 as 進入偏差・1コース,
			t_index.nige_win_count_course_1 as 逃げ勝数・1コース,
			t_index.nige_win_rate_course_1 as 逃げ勝率・1コース,
			t_index.makuri_lost_count_course_1 as まくられ数・1コース,
			t_index.makuri_lost_rate_course_1 as まくられ率・1コース,
			t_index.sashi_lost_count_course_1 as 差され数・1コース,
			t_index.sashi_lost_rate_course_1 as 差され率・1コース,
			t_index.course_count_2 as 出走数・2コース,
			t_index.ability_course_2 as 能力指数・2コース,
			t_index.sinnyu_course_2 as 進入偏差・2コース,
			t_index.nige_lost_count_course_2 as 逃し数・2コース,
			t_index.nige_lost_rate_course_2 as 逃し率・2コース,
			t_index.makuri_win_count_course_2 as まくり勝数・2コース,
			t_index.makuri_win_rate_course_2 as まくり率・2コース,
			t_index.sashi_win_count_course_2 as 差し勝数・2コース,
			t_index.sashi_win_rate_course_2 as 差し率・2コース,
			t_index.course_count_3 as 出走数・3コース,
			t_index.ability_course_3 as 能力指数・3コース,
			t_index.sinnyu_course_3 as 進入偏差・3コース,
			t_index.makuri_win_count_course_3 as まくり勝数・3コース,
			t_index.makuri_win_rate_course_3 as まくり率・3コース,
			t_index.sashi_win_count_course_3 as 差し勝数・3コース,
			t_index.sashi_win_rate_course_3 as 差し率・3コース,
			t_index.course_count_4 as 出走数・4コース,
			t_index.ability_course_4 as 能力指数・4コース,
			t_index.sinnyu_course_4 as 進入偏差・4コース,
			t_index.makuri_win_count_course_4 as まくり勝数・4コース,
			t_index.makuri_win_rate_course_4 as まくり率・4コース,
			t_index.sashi_win_count_course_4 as 差し勝数・4コース,
			t_index.sashi_win_rate_course_4 as 差し率・4コース,
			t_index.course_count_5 as 出走数・5コース,
			t_index.ability_course_5 as 能力指数・5コース,
			t_index.sinnyu_course_5 as 進入偏差・5コース,
			t_index.makuri_win_count_course_5 as まくり勝数・5コース,
			t_index.makuri_win_rate_course_5 as まくり率・5コース,
			t_index.sashi_win_count_course_5 as 差し勝数・5コース,
			t_index.sashi_win_rate_course_5 as 差し率・5コース,
			t_index.course_count_6 as 出走数・6コース,
			t_index.ability_course_6 as 能力指数・6コース,
			t_index.sinnyu_course_6 as 進入偏差・6コース,
			t_index.makuri_win_count_course_6 as まくり勝数・6コース,
			t_index.makuri_win_rate_course_6 as まくり率・6コース,
			t_index.sashi_win_count_course_6 as 差し勝数・6コース,
			t_index.sashi_win_rate_course_6 as 差し率・6コース
		FROM
			t_index
		ORDER BY t_index.player_no ASC,t_index.yyyymmdd DESC, t_index.race_no DESC
    ) GROUP BY 選手登録番号2
)

SELECT * FROM
 (
    SELECT
        ROW_NUMBER() OVER (
            PARTITION BY
                年月日,場コード,レース番号
            ORDER BY
                直近・能力指数 DESC
        ) AS 能力順位,
        場名,グレード,タイトル,開催日,レース番号,レース名,艇番,選手登録番号,選手名,級別
    FROM
		(SELECT * FROM (QUERY_A A INNER JOIN QUERY_B B ON A.選手登録番号 = B.選手登録番号2))
    
) AS  出走表
WHERE
    出走表.能力順位 = 1 AND 出走表.艇番 = 1

Home > 5000.検索用SQL