zoukankan      html  css  js  c++  java
  • SQL面试题——查询课程

    题目:  
    成绩表(Grade),包含字段:GradeID(Int,自增), SNO(int, 学号), CNO(int, 课程号), Score(float,分数)

        查询每门课程的平均(最高/最低)分及课程号;

        查询每门课程第1名的学生的学号;

        查询每门课程中超过平均分的所有学生的学号等等;

     

    解答:

    创建表

    Create Table Grade
    (
        GradeID int not null identity(0, 1)
            constraint PK_Grade primary key,
        SNO int,
        CNO int,
        Score float
    )
    Insert into dbo.Grade
    (SNO, CNO, Score)
    values
    (22,23,24),
    (32,33,44),
    (52,53,54),
    (22,23,25),
    (22,23,26),
    (22,23,27),
    (22,23,28),
    (22,23,29),
    (22,23,30);

    1.查询每门课程的平均(最高/最低)分及课程号:

    Select AVG(Score) as AvgScore, CNO from Grade group by CNO
    Select MAX(Score) as MaxScore, CNO From grade group by cno

    2.查询每门课程第1名的学生的学号:

    select * from Grade a where not exists(    
        select 1 from grade b where b.cno = a.cno and (b.score < a.score 
             or (b.score = a.score and gradeid < a.gradeid)))

    3.查询每门课程中超过平均分的所有学生的学号:

    select * from grade a  where not exists(
        select * from(select AVG(score) avgScore, cno from grade group by cno) b  where a.cno = b.cno and a.score < b.avgScore)
  • 相关阅读:
    CSS复合选择器
    模块之shutil模块模块详解
    模块之sys模块详解
    模块之os模块详解
    map遍历
    java完美处理表情符
    死磕设计模式—建造者模式
    Java String getChars()方法
    Java知识系统回顾整理01基础06数组05复制数组
    Java知识系统回顾整理01基础06数组04增强型for循环
  • 原文地址:https://www.cnblogs.com/hellolong/p/4065447.html
Copyright © 2011-2022 走看看