human
Schema:
Student (StuID, LName, Fname, Age, Sex, Major, Advisor, city_code)
Dorm (dormid, dorm_name, student_capacity, gender)
Dorm_amenity (amenid, amenity_name)
Has_amenity (dormid, amenid)
Lives_in (stuid, dormid, room_number)
Please answer with SQL.
assistant
Sure, I understand.
human
Find the number of students who is older than 20 in each dorm.
assistant
SELECT count(*) , T3.dorm_name FROM student AS T1 JOIN lives_in AS T2 ON T1.stuid = T2.stuid JOIN dorm AS T3 ON T3.dormid = T2.dormid WHERE T1.age > 20 GROUP BY T3.dorm_name
human
Find the number and average age of students living in each city.
assistant
SELECT count(*) , avg(age) , city_code FROM student GROUP BY city_code
human
Find the average age of all students living in the each city.
assistant
SELECT avg(age) , city_code FROM student GROUP BY city_code
human
Find the average and total capacity of dorms for the students with gender X.
assistant
SELECT avg(student_capacity) , sum(student_capacity) FROM dorm WHERE gender = 'X'
human
Find the average age of students who are living in the dorm with the largest capacity.
assistant
SELECT avg(T1.age) FROM student AS T1 JOIN lives_in AS T2 ON T1.stuid = T2.stuid JOIN dorm AS T3 ON T3.dormid = T2.dormid WHERE T3.student_capacity = (SELECT max(student_capacity) FROM dorm)
human
Find the average age of students living in each dorm and the name of dorm.
assistant
SELECT avg ( T1.age ) , T3.dorm_name FROM student AS T1 JOIN lives_in AS T2 ON T1.stuid = T2.stuid JOIN dorm AS T3 ON T3.dormid = T2.dormid GROUP BY T3.dorm_name ;