select name from 学生表 where (select avg(score) from 成绩表 group by id)>75 and sex='男'

解决方案 »

  1.   

    1.
    select *
    from 学生
    where 学号 in (select 学号 
                   from 成绩 a 
                   where not exists(select 1 from 成绩 where 学号=a.学号 and 分数<75)
                   )
    and 性别='男'
      

  2.   

    2.
    select avg(age),avg(height),max(grade),count(distinct sno)
    from student;
      

  3.   

    不好意思,上面写错了。

    2.
    select avg(age),avg(height),max(grade),count(distinct sno)
    from student,grade
    where student.sno=grade.sno
      

  4.   

    不知道是不是你第3题没说清楚
    我是照我的理解来做的 我是试一下select c1.课程名
    from 
    (
        select b.课程名 , Count(1) 平均分相同的系别数量
        from (
            select a1.课程名 , a1.系别 , avg(a2.分数) 平均分数
            from 课程 a1 inner join 成绩 a2 on a1.课程号 = a2.课程号
            group by a1.课程名 , a1.系别
        ) b
        group by b.课程名 , b.平均分数
    ) c1 inner join
    (
        select b.课程名 , Count(1) 系别数量
        from (
            select a1.课程名 , a1.系别
            from 课程 a1 
            group by a1.课程名 , a1.系别
        ) b
        group by b.课程名
    ) c2 on c1.课程名 = c2.课程名 and c1.平均分相同的系别数量 = c2.系别数量