查询成绩比该课程平均成绩低的同学的成绩表

时间:2022-07-02 19:54:14
101        2-201      90
101        3-105      64
103        3-105      92
107        3-105      91
105        3-105      88
108        3-105      78
109        3-105      76
111        3-105      95
109        3-245      54
105        3-245      45
107        3-245      NULL
103        3-245      86
107        6-106      79
107        6-166      93
101        6-166      85
108        6-166      81
110        9-888      71

select * from 成绩表 where 分数 <all (select AVG(分数) from 成绩表 group by 课程号)

105        3-245      45
109        3-245      54

我写的怎么没吧6-166的带出来,还有null的那个也没带出来

6 个解决方案

#1


select  
   a.*
from
   成绩表 a,
  (select 课程号,avg(分数) as 分数 from 成绩表 group by 课程号)b
where
   a.课程号=b.课程号
and
   a.分数<b.分数

#2


select * from 成绩表 a where 分数 <(select AVG(分数) from 成绩表)
这样可以不?

#3


引用 1 楼 fredrickhu 的回复:
SQL code
select  
   a.*
from
   成绩表 a,
  (select 课程号,avg(分数) as 分数 from 成绩表 group by 课程号)b
where
   a.课程号=b.课程号
and
   a.分数<b.分数


老大,在另外写一个方式  让我学学

#4


select 学号,课程号,成绩
from sc awhere 成绩<(select avg(成绩)       
                     from sc b
                     where a.课程号=b.课程号)

#5


相关子查询:
SELECT *
FROM 成绩表 AS a
WHERE 成绩 < (
    SELECT AVG(成绩)
    FROM 成绩表 AS b
    WHERE a.课程号 = b.课程号)

#6


try this,

select a.*
from 成绩表 a
inner join
(select 课程号,
        avg(分数) '平均分'
 from 成绩表
 group by 课程号) b on a.课程号=b.课程号 and a.分数<b.平均分

#1


select  
   a.*
from
   成绩表 a,
  (select 课程号,avg(分数) as 分数 from 成绩表 group by 课程号)b
where
   a.课程号=b.课程号
and
   a.分数<b.分数

#2


select * from 成绩表 a where 分数 <(select AVG(分数) from 成绩表)
这样可以不?

#3


引用 1 楼 fredrickhu 的回复:
SQL code
select  
   a.*
from
   成绩表 a,
  (select 课程号,avg(分数) as 分数 from 成绩表 group by 课程号)b
where
   a.课程号=b.课程号
and
   a.分数<b.分数


老大,在另外写一个方式  让我学学

#4


select 学号,课程号,成绩
from sc awhere 成绩<(select avg(成绩)       
                     from sc b
                     where a.课程号=b.课程号)

#5


相关子查询:
SELECT *
FROM 成绩表 AS a
WHERE 成绩 < (
    SELECT AVG(成绩)
    FROM 成绩表 AS b
    WHERE a.课程号 = b.课程号)

#6


try this,

select a.*
from 成绩表 a
inner join
(select 课程号,
        avg(分数) '平均分'
 from 成绩表
 group by 课程号) b on a.课程号=b.课程号 and a.分数<b.平均分