一句SQL查询没门课程都低于80分的学生信息

#建表  T

CREATE TABLE T (
   NAME VARCHAR(200),
   kecheng VARCHAR(200),
   fenshu INT  
 )

#导入数据
name   kecheng    fenshu 
张三     语文     81
张三     数学     75
李四     语文     76
李四     数学     90
王五     语文     81
王五     数学     100
王五     英语     90

# 查询没门课程大于80分的学生信息

#逆向思维方式

SELECT name
FROM t
GROUP BY name
Having MIN(fenshu)>=80

#正常方式 SELECT DISTINCT name FROM t WHERE name not in( SELECT Distinct name FROM t WHERE fenshu <80)

#一句SQL查出所有课程成绩最高和最低的学生及其分数

SELECT "最高分",t.*  
FROM t ,(SELECT MAX(fenshu) AS fenshu,`kecheng` FROM t GROUP BY `kecheng`)b  
WHERE t.`fenshu` = b.fenshu  
AND t.`kecheng` = b.kecheng  
UNION  
SELECT "最低分",t.*  
FROM t ,(SELECT MIN(fenshu) AS fenshu,`kecheng` FROM t GROUP BY `kecheng`)b  
WHERE t.`fenshu` = b.fenshu  
AND t.`kecheng` = b.kecheng; 

  

#求平均分数,总成绩

SELECT NAME ,SUM(fenshu),AVG(fenshu)
FROM t 
GROUP BY kecheng

  

参考链接:http://blog.csdn.net/caiandyong/article/details/52383923

                  http://www.cnblogs.com/hongyan5682/p/4816444.html

       欢迎评论交流。感谢分享!!!

    

原文地址:https://www.cnblogs.com/up-farm/p/7763693.html