Example #1
0
def create_table():
    db.run_command('''
        CREATE TABLE IF NOT EXISTS league (
            league_id TEXT,
            name TEXT
        ) 
    ''')
Example #2
0
def feed_table():
    db.run_command('''
        INSERT OR IGNORE INTO city(name, state)
        SELECT city, state
        FROM park_codes
        GROUP BY city, state;
    ''')
Example #3
0
def feed_table():
    columns = [
        "game_number", "score", "line_score", "at_bats", "hits", "doubles",
        "triples", "homeruns", "rbi", "sacrifice_hits", "sacrifice_flies",
        "hit_by_pitch", "walks", "intentional_walks", "strikeouts",
        "stolen_bases", "caught_stealing", "grounded_into_double",
        "first_catcher_interference", "left_on_base", "pitchers_used",
        "individual_earned_runs", "team_earned_runs", "wild_pitches", "balks",
        "putouts", "assists", "errors", "passed_balls", "double_plays",
        "triple_plays"
    ]

    db.run_command(f'''
        INSERT OR IGNORE INTO team_stat(game_id, team_id, {','.join([f'{c}' for c in columns])})
        SELECT game_id, team_id, {','.join([f'{c}' for c in columns])} 
        FROM (
            SELECT 
                game_id, v_name team_id, {','.join([f'v_{c} {c}' for c in columns])}, date
            FROM game_log
            UNION
            SELECT 
                game_id, h_name team_id, {','.join([f'h_{c} {c}' for c in columns])}, date
            FROM game_log
            ORDER BY date
        )
    ''')
Example #4
0
def feed_table():
    db.run_command('''
        INSERT OR IGNORE INTO team_appearence(appearence_id, team_id)
        SELECT 
            p.appearance_id,
            CASE 
                WHEN p.person_id IN 
                (
                    v_manager_id, 
                    v_starting_pitcher_id, 
                    v_player_1_id, 
                    v_player_2_id, 
                    v_player_3_id, 
                    v_player_4_id, 
                    v_player_5_id,
                    v_player_6_id, 
                    v_player_7_id, 
                    v_player_8_id, 
                    v_player_9_id
                ) 
                THEN g.v_name
                ELSE g.h_name
            END AS team_id
        FROM person_appearance p
        INNER JOIN game_log g ON g.game_id == p.game_id
        WHERE appearance_type_id NOT IN ('UHP', 'U1B', 'U2B', 'U3B', 'ULF', 'URF', 'AWP', 'ALP', 'ASP', 'AWB')
    ''')
Example #5
0
def create_table():
    db.run_command('''
        CREATE TABLE IF NOT EXISTS person (
            person_id TEXT PRIMARY KEY,
            first TEXT,
            last TEXT
        ) 
    ''')
Example #6
0
def create_table():
    db.run_command('''
        CREATE TABLE IF NOT EXISTS city (
            city_id INTEGER PRIMARY KEY,
            name TEXT,
            state TEXT
        ) 
    ''')
Example #7
0
def create_table():
    db.run_command('''
        CREATE TABLE IF NOT EXISTS team_appearence (
            appearence_id INTEGER PRIMARY KEY,
            team_id TEXT,

            FOREIGN KEY(team_id) REFERENCES team(team_id)
        ) 
    ''')
Example #8
0
def feed_table():
    db.run_command('''
        INSERT OR IGNORE INTO league(league_id, name)
        VALUES
            ('NL', 'National League'),
            ('AL', 'American League'),
            ('FL', 'Federal League'),
            ('PL', "Players' League"),
            ('UA', 'Union Association'),
            ('AA', 'American Association')
    ''')
Example #9
0
def create_table():
    db.run_command('''
        CREATE TABLE IF NOT EXISTS person_appearance (
            appearance_id INTEGER PRIMARY KEY,
            game_id TEXT,
            person_id TEXT,
            appearance_type_id TEXT,

            FOREIGN KEY(game_id) REFERENCES game(game_id),
            FOREIGN KEY(person_id) REFERENCES person(person_id)
        ) 
    ''')
Example #10
0
def create_table():
    db.run_command('''
        CREATE TABLE IF NOT EXISTS team (
            team_id TEXT PRIMARY KEY,
            league_id TEXT,
            city_id INTEGER,
            nickname TEXT,
            french_id TEXT,
            seq INTEGER,

            FOREIGN KEY(league_id) REFERENCES league(league_id),
            FOREIGN KEY(city_id) REFERENCES city(city_id)
        ) 
    ''')
Example #11
0
def create_table():
    db.run_command('''
        CREATE TABLE IF NOT EXISTS park (
            park_id TEXT PRIMARY KEY,
            city_id INTEGER,
            league_id TEXT,
            name TEXT,
            aka TEXT,
            notes TEXT,

            FOREIGN KEY(city_id) REFERENCES city(city_id),
            FOREIGN KEY(league_id) REFERENCES league(league_id)
        ) 
    ''')
Example #12
0
def feed_table():
    db.run_command('''
        INSERT OR IGNORE INTO park(
            park_id,
            city_id,
            league_id,
            name,
            aka,
            notes
        )
        SELECT p.park_id, c.city_id, l.league_id, p.name, p.aka, p.notes
        FROM park_codes p
        LEFT JOIN city c ON p.city == c.name
        LEFT JOIN league l ON p.league == l.league_id
    ''')
Example #13
0
def create_table():
    db.run_command('''
        CREATE TABLE IF NOT EXISTS game (
            game_id TEXT PRIMARY KEY,
            park_id TEXT,
            date DATE,
            number_of_game VARCHAR(1),
            length_outs INTEGER,
            day BOOLEAN,
            completion TEXT,
            forefeit VARCHAR(1),
            protest VARCHAR(1),
            attendance INTEGER,
            length_minutes INTEGER,
            additional_info TEXT,
            acquisition_info VARCHAR(1),

            FOREIGN KEY(park_id) REFERENCES park(park_id)
        ) 
    ''')
Example #14
0
def feed_table():
    db.run_command('''
        INSERT OR IGNORE INTO team(
            team_id,
            league_id,
            city_id,
            nickname,
            french_id,
            seq
        )
        SELECT 
            t.team_id, 
            t.league, 
            c.city_id, 
            t.nickname, 
            t.franch_id,
            t.seq
        FROM team_codes t
        LEFT JOIN city c ON c.name == t.city
    ''')
Example #15
0
def create_table():
    db.run_command('''
        CREATE TABLE IF NOT EXISTS team_stat (
            game_id TEXT PRIMARY KEY,
            team_id TEXT,
            game_number INTEGER, 
            score INTEGER, 
            line_score TEXT, 
            at_bats INTEGER, 
            hits INTEGER, 
            doubles INTEGER,  
            triples INTEGER, 
            homeruns INTEGER, 
            rbi INTEGER, 
            sacrifice_hits INTEGER,  
            sacrifice_flies INTEGER, 
            hit_by_pitch INTEGER, 
            walks INTEGER,  
            intentional_walks INTEGER, 
            strikeouts INTEGER,  
            stolen_bases INTEGER, 
            caught_stealing INTEGER, 
            grounded_into_double INTEGER, 
            first_catcher_interference INTEGER,  
            left_on_base INTEGER, 
            pitchers_used INTEGER, 
            individual_earned_runs INTEGER, 
            team_earned_runs INTEGER, 
            wild_pitches INTEGER, 
            balks INTEGER, 
            putouts INTEGER,  
            assists INTEGER, 
            errors INTEGER, 
            passed_balls INTEGER, 
            double_plays INTEGER,  
            triple_plays INTEGER,

            FOREIGN KEY(team_id) REFERENCES team(team_id)
        )
    ''')
Example #16
0
def feed_table():
    db.run_command('''
        INSERT OR IGNORE INTO game
        SELECT 
            game_id,
            park_id,
            date,
            number_of_game,
            length_outs,
            CASE 
                WHEN day_night=='D' 
                    THEN TRUE 
                WHEN day_night=='N'
                    THEN FALSE
                ELSE NULL END AS day,
            completion,
            forefeit,
            protest,
            attendance,
            length_minutes,
            additional_info,
            acquisition_info
        FROM game_log
    ''')
Example #17
0
def feed_table():
    # yes, copied from solution...
    c2 = """
        INSERT OR IGNORE INTO person_appearance (
            game_id,
            person_id,
            appearance_type_id
        ) 
            SELECT
                game_id,
                hp_umpire_id,
                "UHP"
            FROM game_log
            WHERE hp_umpire_id IS NOT NULL    

        UNION

            SELECT
                game_id,
                [1b_umpire_id],
                "U1B"
            FROM game_log
            WHERE "1b_umpire_id" IS NOT NULL

        UNION

            SELECT
                game_id,
                [2b_umpire_id],
                "U2B"
            FROM game_log
            WHERE [2b_umpire_id] IS NOT NULL

        UNION

            SELECT
                game_id,
                [3b_umpire_id],
                "U3B"
            FROM game_log
            WHERE [3b_umpire_id] IS NOT NULL

        UNION

            SELECT
                game_id,
                lf_umpire_id,
                "ULF"
            FROM game_log
            WHERE lf_umpire_id IS NOT NULL

        UNION

            SELECT
                game_id,
                rf_umpire_id,
                "URF"
            FROM game_log
            WHERE rf_umpire_id IS NOT NULL

        UNION

            SELECT
                game_id,
                v_manager_id,
                "MM"
            FROM game_log
            WHERE v_manager_id IS NOT NULL

        UNION

            SELECT
                game_id,
                h_manager_id,
                "MM"
            FROM game_log
            WHERE h_manager_id IS NOT NULL

        UNION

            SELECT
                game_id,
                winning_pitcher_id,
                "AWP"
            FROM game_log
            WHERE winning_pitcher_id IS NOT NULL

        UNION

            SELECT
                game_id,
                losing_pitcher_id,
                "ALP"
            FROM game_log
            WHERE losing_pitcher_id IS NOT NULL

        UNION

            SELECT
                game_id,
                saving_pitcher_id,
                "ASP"
            FROM game_log
            WHERE saving_pitcher_id IS NOT NULL

        UNION

            SELECT
                game_id,
                winning_rbi_batter_id,
                "AWB"
            FROM game_log
            WHERE winning_rbi_batter_id IS NOT NULL

        UNION

            SELECT
                game_id,
                v_starting_pitcher_id,
                "PSP"
            FROM game_log
            WHERE v_starting_pitcher_id IS NOT NULL

        UNION

            SELECT
                game_id,
                h_starting_pitcher_id,
                "PSP"
            FROM game_log
            WHERE h_starting_pitcher_id IS NOT NULL;
    """

    template = """
        INSERT OR IGNORE INTO person_appearance (
            game_id,
            person_id,
            appearance_type_id
        ) 
            SELECT
                game_id,
                {hv}_player_{num}_id,
                "O{num}"
            FROM game_log
            WHERE {hv}_player_{num}_id IS NOT NULL

        UNION

            SELECT
                game_id,
                {hv}_player_{num}_id,
                "D" || CAST({hv}_player_{num}_def_pos AS INT)
            FROM game_log
            WHERE {hv}_player_{num}_id IS NOT NULL;
    """

    db.run_command(c2)

    for hv in ["h", "v"]:
        for num in range(1, 10):
            query_vars = {"hv": hv, "num": num}
            db.run_command(template.format(**query_vars))
Example #18
0
def drop_table():
    db.run_command('''
        DROP TABLE IF EXISTS person
    ''')
Example #19
0
def feed_table():
    db.run_command('''
        INSERT OR IGNORE INTO person
        SELECT id, first, last
        FROM person_codes
    ''')
Example #20
0
def drop_table():
    db.run_command('''
        DROP TABLE IF EXISTS league
    ''')
Example #21
0
def drop_table():
    db.run_command('''
        DROP TABLE IF EXISTS team
    ''')
Example #22
0
def drop_table():
    db.run_command('''
        DROP TABLE IF EXISTS person_appearance
    ''')
Example #23
0
def drop_table():
    db.run_command('''
        DROP TABLE IF EXISTS team_appearence
    ''')