用SQL语句写出下图的正确答案
1)、写出计算所有学生的英语平均成绩的SQL语句。
我们需要在mark表中进行查询,那么SQL语句就是:select avg(mark.english) from mark group by mark.studentno;
2)、现有五个学生,其学号假定分别是11、22、33、44、55;请用一条SQL语句实现列出这五个学生的数学成绩及其姓名、学生地址、电话号码;
这里需要关联两个表,SQL语句就是:select name,address,telno,math from cust a join mark b on b.studentno = a.studentno where studentno in (11,22,33,44,55);
3)、查询所有学生的姓名、计算机成绩、按照计算机成绩从高到低排序;
select name, computer from cust join mark on mark.studentno = cust.studentno order by computer desc;
4)、查询所有总成绩大于240分的学生学号、姓名、总成绩,按照总成绩从高到低排序;
select a.studentno, a.name, sum(english + math + computer) ZF from cust a join mark b on b.studentno = a.studentno group by studentno having ZF > 240 order by ZF desc;
说明:
①GROUP BY语句可以显示分组结果,常与COUNT、MAX、MIN、SUM、AVG等聚合函数配合使用;
②HAVING和WHERE都是对条件进行查询,但HAVING不能换成WHERE,因为WHERE直接针对行操作,且在GROUP BY之前运行(即先通过WHERE筛选行,之后再将筛选出的行通过GROUP BY分组);
③ORDER BY可以对结果进行排序,在没有明确指定ASC(升序)或DESC(降序)的情况下,默认按升序排列。