CREATE TABLE Player_Attributes (
    id NUMBER PRIMARY KEY,
    player_fifa_api_id NUMBER,
    player_api_id NUMBER,
    date TEXT,
    overall_rating NUMBER,
    potential NUMBER,
    preferred_foot TEXT,
    attacking_work_rate TEXT,
    defensive_work_rate TEXT,
    crossing NUMBER,
    finishing NUMBER,
    heading_accuracy NUMBER,
    short_passing NUMBER,
    volleys NUMBER,
    dribbling NUMBER,
    curve NUMBER,
    free_kick_accuracy NUMBER,
    long_passing NUMBER,
    ball_control NUMBER,
    acceleration NUMBER,
    sprint_speed NUMBER,
    agility NUMBER,
    reactions NUMBER,
    balance NUMBER,
    shot_power NUMBER,
    jumping NUMBER,
    stamina NUMBER,
    strength NUMBER,
    long_shots NUMBER,
    aggression NUMBER,
    interceptions NUMBER,
    positioning NUMBER,
    vision NUMBER,
    penalties NUMBER,
    marking NUMBER,
    standing_tackle NUMBER,
    sliding_tackle NUMBER,
    gk_diving NUMBER,
    gk_handling NUMBER,
    gk_kicking NUMBER,
    gk_positioning NUMBER,
    gk_reflexes NUMBER,
    FOREIGN KEY ("player_api_id") REFERENCES Player("player_api_id"),
    FOREIGN KEY ("player_fifa_api_id") REFERENCES Player("player_fifa_api_id")
);
CREATE TABLE sqlite_sequence (
    name TEXT,
    seq TEXT
);
CREATE TABLE Player (
    id NUMBER PRIMARY KEY,
    player_api_id NUMBER,
    player_name TEXT,
    player_fifa_api_id NUMBER,
    birthday TEXT,
    height NUMBER,
    weight NUMBER
);
CREATE TABLE League (
    id NUMBER PRIMARY KEY,
    country_id NUMBER,
    name TEXT,
    FOREIGN KEY ("country_id") REFERENCES Country("id")
);
CREATE TABLE Country (
    id NUMBER PRIMARY KEY,
    name TEXT
);
CREATE TABLE Team (
    id NUMBER PRIMARY KEY,
    team_api_id NUMBER,
    team_fifa_api_id NUMBER,
    team_long_name TEXT,
    team_short_name TEXT
);
CREATE TABLE Team_Attributes (
    id NUMBER PRIMARY KEY,
    team_fifa_api_id NUMBER,
    team_api_id NUMBER,
    date TEXT,
    buildUpPlaySpeed NUMBER,
    buildUpPlaySpeedClass TEXT,
    buildUpPlayDribbling NUMBER,
    buildUpPlayDribblingClass TEXT,
    buildUpPlayPassing NUMBER,
    buildUpPlayPassingClass TEXT,
    buildUpPlayPositioningClass TEXT,
    chanceCreationPassing NUMBER,
    chanceCreationPassingClass TEXT,
    chanceCreationCrossing NUMBER,
    chanceCreationCrossingClass TEXT,
    chanceCreationShooting NUMBER,
    chanceCreationShootingClass TEXT,
    chanceCreationPositioningClass TEXT,
    defencePressure NUMBER,
    defencePressureClass TEXT,
    defenceAggression NUMBER,
    defenceAggressionClass TEXT,
    defenceTeamWidth NUMBER,
    defenceTeamWidthClass TEXT,
    defenceDefenderLineClass TEXT,
    FOREIGN KEY ("team_api_id") REFERENCES Team("team_api_id"),
    FOREIGN KEY ("team_fifa_api_id") REFERENCES Team("team_fifa_api_id")
);

Question: List all country and league names.
SQL: SELECT T1.name ,  T2.name FROM Country AS T1 JOIN League AS T2 ON T1.id  =  T2.country_id

Question: How many leagues are there in England?
SQL: SELECT count(*) FROM Country AS T1 JOIN League AS T2 ON T1.id  =  T2.country_id WHERE T1.name  =  "England"

Question: What is the average weight of all players?
SQL: SELECT avg(weight) FROM Player

Question: What is the maximum and minimum height of all players?
SQL: SELECT max(weight) ,  min(weight) FROM Player

Question: List all player names who have an overall rating higher than the average.
SQL: SELECT DISTINCT T1.player_name FROM Player AS T1 JOIN Player_Attributes AS T2 ON T1.player_api_id = T2.player_api_id WHERE T2.overall_rating  >  ( SELECT avg(overall_rating) FROM Player_Attributes )

Question: What are the names of players who have the best dribbling?
SQL: SELECT DISTINCT T1.player_name FROM Player AS T1 JOIN Player_Attributes AS T2 ON T1.player_api_id = T2.player_api_id WHERE T2.dribbling  =  ( SELECT max(overall_rating) FROM Player_Attributes)

Question: List the names of all players who have a crossing score higher than 90 and prefer their right foot.
SQL: SELECT DISTINCT T1.player_name FROM Player AS T1 JOIN Player_Attributes AS T2 ON T1.player_api_id = T2.player_api_id WHERE T2.crossing  >  90 AND T2.preferred_foot  =  "right"

Question: List the names of all left-footed players who have overall rating between 85 and 90.
SQL: SELECT DISTINCT T1.player_name FROM Player AS T1 JOIN Player_Attributes AS T2 ON T1.player_api_id = T2.player_api_id WHERE T2.preferred_foot  =  "left" AND T2.overall_rating  >=  85 AND T2.overall_rating  <=  90

Question: What is the average rating for right-footed players and left-footed players?
SQL: SELECT preferred_foot ,  avg(overall_rating) FROM Player_Attributes GROUP BY preferred_foot

Question: Of all players with an overall rating greater than 80, how many are right-footed and left-footed?
SQL: SELECT preferred_foot ,  count(*) FROM Player_Attributes WHERE overall_rating  >  80 GROUP BY preferred_foot

Question: List all of the player ids with a height of at least 180cm and an overall rating higher than 85.
SQL: SELECT player_api_id FROM Player WHERE height  >=  180 INTERSECT SELECT player_api_id FROM Player_Attributes WHERE overall_rating  >  85

Question: List all of the ids for left-footed players with a height between 180cm and 190cm.
SQL: SELECT player_api_id FROM Player WHERE height  >=  180 AND height  <=  190 INTERSECT SELECT player_api_id FROM Player_Attributes WHERE preferred_foot  =  "left"

Question: Who are the top 3 players in terms of overall rating?
SQL: SELECT DISTINCT T1.player_name FROM Player AS T1 JOIN Player_Attributes AS T2 ON T1.player_api_id  =  T2.player_api_id ORDER BY overall_rating DESC LIMIT 3

Question: List the names and birthdays of the top five players in terms of potential.
SQL: SELECT DISTINCT T1.player_name ,  T1.birthday FROM Player AS T1 JOIN Player_Attributes AS T2 ON T1.player_api_id  =  T2.player_api_id ORDER BY potential DESC LIMIT 5