Task: NL2SQL (source dataset: Spider)

Natural language to SQL, also known as NL2SQL, is the problem of generating a SQL query that can be executed on a input table, for a given natural language question.

You will be given an input table called "table" in the markdown format, as well as a question. Your task is to generate an SQL query that can be executed on the input table to answer the question.

Please ensure that the generated SQL only return relevant columns being specifically asked in the question (e.g., in SQL please don't return more than one columns in SELECT if only one column is needed to answer the given question, and similarly please refrain from using SELECT * unless the entire row is needed to answer the question).
 
When generating SQL code, please use the SQLite syntax to ensure that your SQL is executable on SQLite3. Use only columns that are present in the table, always use quotes around your column and table names (some column names have punctuation or special characters), and refer to the columns using the column-names exactly as they appear in the table, do not add or remove punctuation (underscore, slash, etc.)

No explanation, return the code only with the following markdown codeblock format : ```sql<SQL CODE>```. For example, ```sql
SELECT * FROM "table"
``` is a valid format.

Database:
bike_racing

Tables:

Table: bike
|   id | product_name                            |   weight |   price | material                         |
|-----:|:----------------------------------------|---------:|--------:|:---------------------------------|
|    1 | BIANCHI SPECIALISSIMA                   |      780 |    9999 | Carbon CC                        |
|    2 | CANNONDALE SUPERSIX EVO HI-MOD DURA ACE |      850 |    5330 | carbon fiber                     |
|    3 | CANYON AEROAD CF SLX 8.0 DI2            |      880 |    3050 | Toray T700 and T800 carbon fiber |
|    4 | GIANT TCR ADVANCED SL 0                 |      750 |    9000 | Carbon CC                        |
|    5 | Ibis                                    |      800 |    3599 | Carbon CC                        |
|    6 | Ibis ||                                 |      760 |    5000 | carbon fiber                     |


Table: cyclist
|   id |   heat | name             | nation        | result   |
|-----:|-------:|:-----------------|:--------------|:---------|
|    1 |      4 | Bradley Wiggins  | Great Britain | 4:16.571 |
|    2 |      3 | Hayden Roulston  | New Zealand   | 4:19.232 |
|    3 |      1 | Steven Burke     | Great Britain | 4:21.558 |
|    4 |      2 | Alexei Markov    | Russia        | 4:22.308 |
|    5 |      1 | Volodymyr Dyudya | Ukraine       | 4:22.471 |
|    6 |      2 | Antonio Tauler   | Spain         | 4:24.974 |
|    7 |      4 | Alexander Serov  | Russia        | 4:25.391 |
|    8 |      3 | Taylor Phinney   | United States | 4:26.644 |


Table: cyclists_own_bikes
|   cyclist_id |   bike_id |   purchase_year |
|-------------:|----------:|----------------:|
|            1 |         2 |            2011 |
|            1 |         3 |            2015 |
|            2 |         3 |            2017 |
|            2 |         5 |            2013 |
|            2 |         4 |            2018 |
|            3 |         4 |            2017 |
|            4 |         4 |            2017 |
|            5 |         5 |            2016 |
|            6 |         5 |            2016 |
|            7 |         5 |            2010 |


Question: What are the ids and names of racing bikes that are purchased by at least 4 cyclists?

db_id: bike_racing
tables: name: bike
data: bike.csv
name: cyclist
data: cyclist.csv
name: cyclists_own_bikes
data: cyclists_own_bikes.csv
label: SELECT T1.id ,  T1.product_name FROM bike AS T1 JOIN cyclists_own_bikes AS T2 ON T1.id  =  T2.bike_id GROUP BY T1.id HAVING count(*)  >=  4
sqlite_path: $MMTU_HOME/data_sqlite/spider/spider_data/test_database/bike_racing/bike_racing.sqlite