#建表 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
欢迎评论交流。感谢分享!!!