select classes_id, count(name)as number from stu GROUP BY classes_id
查询结果是
那么临时表在哪里呢?
1、分析一下查询语句,需要查询表中的班级名称以及每个班级对应的学生的数量。
首先,sql语句会产生第一张临时表,找到所有的classid
select DISTINCT classes_id from stu
临时表1
2、然后根据临时表1去分别一个个查
select * from stu where classes_id = 1
select * from stu where classes_id = 2
临时表2
3、读取你需要得到的信息,比如这里需要得到
classes_id, count(name)as number
那么,group by会拿到临时表1、2、3、4、等等的数量来填入最终表格。
select COUNT(*) from (select * from stu where classes_id = 1)as s1