当前位置:Gxlcms > 数据库问题 > InterviewQuestion_SQLServer_Probl_查询每门课都大于80分的学生姓名

InterviewQuestion_SQLServer_Probl_查询每门课都大于80分的学生姓名

时间:2021-07-01 10:21:17 帮助过:26人阅读

文件:SQLQuery1.sql

/*
环境:Microsoft SQL Server 2012
工具: Microsoft SQL Server Management Studio
数据库: Interview
数据表: grade
详情:
name    class    score
张三    语文    81
张三    数学    75
李四    语文    76
李四    数学    90
王五    语文    81
王五    数学    100
王五    英语    90
*/

--查询出每门课都大于80分的学生姓名:
--方法1
SELECT DISTINCT name FROM grade WHERE name NOT IN(SELECT DISTINCT name FROM grade WHERE score <= 80);
--方法2
SELECT name FROM grade GROUP BY name HAVING MIN(score) > 80;

--查询平均分大于80的学生的姓名:
--方法1
SELECT name FROM (SELECT COUNT(*) AS t,SUM(score) AS num,name FROM grade GROUP BY name) AS a WHERE a.num > 80*t;
--方法2
SELECT name,AVG(score) AS sc FROM grade g1 GROUP BY name HAVING AVG(score) > 80;

运行结果:

结果1:

技术分享

结果2:

技术分享

结果3:

技术分享

结果4:

 技术分享

以上整理,如有错误之处或有更好的方法,请看到朋友不吝指正,谢谢!

参考文章:

http://www.cnblogs.com/praglody/p/6854181.html?utm_source=itdadao&utm_medium=referral

InterviewQuestion_SQLServer_Probl_查询每门课都大于80分的学生姓名

标签:英语   ada   sum   技术   错误   数学   nbsp   dao   自己   

人气教程排行