Database schema:
CREATE TABLE district (
  District_ID NUMBER PRIMARY KEY,
  Name TEXT,
  Area_km NUMBER,
  Population NUMBER,
  Density_km NUMBER,
  Government_website TEXT
);
CREATE TABLE spokesman (
  Spokesman_ID NUMBER PRIMARY KEY,
  Name TEXT,
  Age NUMBER,
  Speach_title TEXT,
  Rank_position NUMBER,
  Points NUMBER
);
CREATE TABLE spokesman_district (
  Spokesman_ID NUMBER PRIMARY KEY,
  District_ID NUMBER,
  Start_year TEXT,
  FOREIGN KEY (District_ID) REFERENCES district(District_ID),
  FOREIGN KEY (Spokesman_ID) REFERENCES spokesman(Spokesman_ID)
);

Question: What are the names and points of spokesmen who are younger than 40?
SQL: SELECT name ,  points FROM spokesman WHERE age  <  40

Question: Select the area and government website of the district with the smallest population.
SQL: SELECT area_km ,  Government_website FROM district ORDER BY Population LIMIT 1

Question: Find the names of districts which have more than one spokesman.
SQL: SELECT t1.name FROM district AS t1 JOIN spokesman_district AS t2 ON t1.District_ID  =  t2.District_ID GROUP BY t2.District_ID HAVING count(*)  >  1

Question: Find the number of spokesmen for each district, and the show district names as well.
SQL: SELECT t1.name ,  count(*) FROM district AS t1 JOIN spokesman_district AS t2 ON t1.District_ID  =  t2.District_ID GROUP BY t2.District_ID

Question: Find the name of the district which has greatest number of spokesmen.
SQL: SELECT t1.name FROM district AS t1 JOIN spokesman_district AS t2 ON t1.District_ID  =  t2.District_ID GROUP BY t2.District_ID ORDER BY count(*) DESC LIMIT 1

Question: Find the names of spokesmen who have served some district before 2004.
SQL: SELECT t1.name FROM spokesman AS t1 JOIN spokesman_district AS t2 ON t1.Spokesman_ID  =  t2.Spokesman_ID WHERE t2.start_year  <  2004

Question: Find the name of spokesmen who do not speak for any district.
SQL: SELECT name FROM spokesman WHERE Spokesman_ID NOT IN (SELECT Spokesman_ID FROM spokesman_district)

Question: Return the ids and names of the districts whose population is larger than 4000 or area bigger than 3000.
SQL: SELECT district_id ,  name FROM district WHERE area_km  >  3000 OR population  >  4000

Question: Find all spokesman's names and speech titles.
SQL: SELECT name ,  speach_title FROM spokesman

Question: Find the name of the district which has the largest area.
SQL: SELECT name FROM district ORDER BY Area_km DESC LIMIT 1

Question: Find the names and populations of the districts whose area is greater than the average area.
SQL: SELECT name ,  population FROM district WHERE area_km  >  (SELECT avg(area_km) FROM district)

Question: Give me the biggest and average areas of all districts.
SQL: SELECT max(area_km) ,  avg(area_km) FROM district

Question: Which spokesman has lower points than the average?
SQL: SELECT name FROM spokesman WHERE points  <  (SELECT avg(points) FROM spokesman)

Question: Find the average points and average ages of all spokesmen whose rank position is 1.
SQL: SELECT avg(points) ,  avg(age) FROM spokesman WHERE rank_position  =  1

Question: Find the total and average population of the districts which have some spokesman.
SQL: SELECT sum(population) ,  avg(population) FROM district WHERE district_id IN (SELECT district_id FROM spokesman_district)