Schema:
CREATE TABLE `AREA_CODE_STATE` (
  `area_code` integer NOT NULL
,  `state` varchar(2) NOT NULL
,  PRIMARY KEY (`area_code`)
);
CREATE TABLE `CONTESTANTS` (
  `contestant_number` integer
,  `contestant_name` varchar(50) NOT NULL
,  PRIMARY KEY (`contestant_number`)
);
CREATE TABLE `VOTES` (
  `vote_id` integer NOT NULL PRIMARY KEY
,  `phone_number` integer NOT NULL
,  `state` varchar(2) NOT NULL
,  `contestant_number` integer NOT NULL
,  `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
, 	FOREIGN KEY (`state`) REFERENCES `AREA_CODE_STATE`(`state`)
, 	FOREIGN KEY (`contestant_number`) REFERENCES `CONTESTANTS`(`contestant_number`)
);

Question: How many states are there?
SQL:
SELECT count(*) FROM area_code_state

Question: List the contestant numbers and names, ordered by contestant name descending.
SQL:
SELECT contestant_number ,  contestant_name FROM contestants ORDER BY contestant_name DESC

Question: List the vote ids, phone numbers and states of all votes.
SQL:
SELECT vote_id ,  phone_number ,  state FROM votes

Question: What are the maximum and minimum values of area codes?
SQL:
SELECT max(area_code) ,  min(area_code) FROM area_code_state

Question: What is last date created of votes from the state 'CA'?
SQL:
SELECT max(created) FROM votes WHERE state  =  'CA'

Question: What are the names of the contestants whose names are not 'Jessie Alloway'
SQL:
SELECT contestant_name FROM contestants WHERE contestant_name != 'Jessie Alloway'

Question: What are the distinct states and create time of all votes?
SQL:
SELECT DISTINCT state ,  created FROM votes

Question: What are the contestant numbers and names of the contestants who had at least two votes?
SQL:
SELECT T1.contestant_number , T1.contestant_name FROM contestants AS T1 JOIN votes AS T2 ON T1.contestant_number  =  T2.contestant_number GROUP BY T1.contestant_number HAVING count(*)  >=  2

Question: Of all the contestants who got voted, what is the contestant number and name of the contestant who got least votes?
SQL:
SELECT T1.contestant_number , T1.contestant_name FROM contestants AS T1 JOIN votes AS T2 ON T1.contestant_number  =  T2.contestant_number GROUP BY T1.contestant_number ORDER BY count(*) ASC LIMIT 1

Question: What are the number of votes from state 'NY' or 'CA'?
SQL:
SELECT count(*) FROM votes WHERE state  =  'NY' OR state  =  'CA'

Question: How many contestants did not get voted?
SQL:
SELECT count(*) FROM contestants WHERE contestant_number NOT IN ( SELECT contestant_number FROM votes )

Question: What is the area code in which the most voters voted?
SQL:
SELECT T1.area_code FROM area_code_state AS T1 JOIN votes AS T2 ON T1.state  =  T2.state GROUP BY T1.area_code ORDER BY count(*) DESC LIMIT 1

Question: What are the create dates, states, and phone numbers of the votes that were for the contestant named 'Tabatha Gehling'?
SQL:
SELECT T2.created ,  T2.state ,  T2.phone_number FROM contestants AS T1 JOIN votes AS T2 ON T1.contestant_number  =  T2.contestant_number WHERE T1.contestant_name  =  'Tabatha Gehling'

Question: List the area codes in which voters voted both for the contestant 'Tabatha Gehling' and the contestant 'Kelly Clauss'.
SQL:
SELECT T3.area_code FROM contestants AS T1 JOIN votes AS T2 ON T1.contestant_number  =  T2.contestant_number JOIN area_code_state AS T3 ON T2.state  =  T3.state WHERE T1.contestant_name  =  'Tabatha Gehling' INTERSECT SELECT T3.area_code FROM contestants AS T1 JOIN votes AS T2 ON T1.contestant_number  =  T2.contestant_number JOIN area_code_state AS T3 ON T2.state  =  T3.state WHERE T1.contestant_name  =  'Kelly Clauss'

Question: Return the names of the contestants whose names contain the substring 'Al' .
SQL:
select contestant_name from contestants where contestant_name like "%al%"