第三章 高级查询

本文展示了多个高级SQL查询示例,包括检查‘Logic Java’课程最近一次考试成绩,判断考试难度,生成成绩单,统计课程平均分,以及各种分组筛选操作。示例涉及子查询、聚合函数、JOIN操作等,是数据库查询和分析的重要参考。
/*
检查“Logic Java”课程最近一次考试成绩
如果有 80分以上的成绩,显示分数排在前5名的学员学号和分数
*/
SELECT studentNO,studentResult
FROM result
WHERE EXISTS(
             SELECT * FROM result
             WHERE studentResult>80
             AND subjectNo=(SELECT subjectNo FROM `new_subject` WHERE subjectName='logic Java')
             AND examDate=(SELECT MAX(`examDate`) FROM result WHERE subjectNo=(SELECT subjectNo FROM `new_subject` WHERE subjectName='logic Java'))           
            )
AND subjectNo=(SELECT subjectNo FROM `new_subject` WHERE subjectName='logic Java')
AND examDate=(SELECT MAX(`examDate`) FROM result WHERE subjectNo=(SELECT subjectNo FROM `new_subject` WHERE subjectName='logic Java'))    
ORDER BY studentResult DESC
LIMIT 5
#检查“Logic Java”课程最近一次考试成绩
#如果全部未通过考试(60分及格),认为本次考试偏难,计算的该次考试平均分加5分
SELECT AVG(studentResult)+5 AS 平均分 FROM result
WHERE NOT EXISTS(
                  SELECT * FROM `result`
                  WHERE `subjectNO`=(
                                     SELECT `subjectNO` FROM `new_subject`
        `result`                             WHERE `subjectName`='logic Java'
                                    )AND `examDate`=(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值