用SQL語句寫2門或2門以上可不及格的學生資訊

2021-03-19 18:21:22 字數 2745 閱讀 6508

1樓:匿名使用者

假設有課程1(a),課程2(b),課程3(c),

select * from 成績表 where (a<60andb<60)or(a<60andc<60)or(b<60andc<60)

查詢存在兩門(包含兩門)以上課程不及格的學生姓名

2樓:love森之南

剛正好在做這題,我這邊是ok的。你自己可以去試試。(因為是測試,所以起名有些隨意)

-- 查詢所有有兩門/或以上成績小於60的學生姓名和平均成績

select s.sname,sss.mm from

(select sc.sno,avg(sc.score) mm from sc where sc.sno in

(select sc.sno from sc where sc.score <60 group by sc.sno having count(sno)>1 )

group by sc.sno) sss

left join s on sss.sno = s.sno

解釋:(select sc.sno from sc where sc.

score <60 group by sc.sno having count(sno)>1 ) ——————是用來鎖定包含兩門不及格的學生的學號,並作為下面查詢的約束條件

(select sc.sno,avg(sc.score) mm from sc where sc.

sno in ——————結合上面篩選出來的學號,計算出平均成績,因為使用了avg函式所以需要排序group by sc.sno) sss,將中間表取名sss

left join s on sss.sno = s.sno——————用外連結關聯學生資訊表

3樓:匿名使用者

select * from student where sno in(

select sno from sc where score<60 group by sno having count(**o)>=2)

4樓:匿名使用者

select student.sname from student,sc

where score <60

排錯sql:列出有二門以上(含兩門)不及格課程的學生姓名及其平均成績

5樓:

因為你按照s.sname分了組並且用了聚集函式avg(sc.scgrade),就必須用group by按照s.

sname分組才行啊,如果select中沒有s.sname,只有聚集函式avg(sc.scgrade)的話肯定就是對的,但是不符合你題目的要求了。

下面這個就是對的了,因為除了聚集函式的選擇項都被分組了,在上面那個後面加上group by s.sname應該就對了,不過不知道sname是不是唯一鍵。

唉,也不知道自己說清楚沒,不清楚的可以發信問我。

6樓:了

你寫的對啊,只是下面的改為如下也可以:

select s.sno,s.sname,avg(sc.scgrade)

from s,sc,(

select sno

from sc

where scgrade<60

group by sno

having count(**o)>=2

)a where s.sno=a.sno and sc.sno=a.sno

group by s.sno,s.sname

7樓:匿名使用者

你只在子查詢用了分組

,而主查詢用到了聚合函式(avg),所以也要用分組(group by),將s.sname分組就正確了

所以記住一點就好,查詢中出現了使用聚合函式以後,後面一定要用group by,而且group by 後接查詢中除了聚合函式的所有列名

8樓:匿名使用者

上面用了聚合函式但沒有給其分組嘛!

比較下面的就看得出來了嘛!

查詢資訊系三門以上不及格課程的學生學號和姓名 用sql語句怎麼寫

9樓:匿名使用者

請參閱以下sql

select [學號],[姓名] from [學生資訊表] where exists(

(select [學號] from [成績表] where  [課程]<60

group by [學號] having count([課程]) >=3 ) as t1

where [t1].[學號] = [學生資訊表].[學號])有疑問及時溝通

一般情況下,這樣寫就可以了

請採納!

10樓:匿名使用者

用having count子句完成,具體自己發揮一下

查詢選修了2門以上課程的學生名單 用sql 語句來完成

11樓:

用到了兩張表,學生資訊表:tb_student 和 成績表:tb_score

select sc.stu_id,name from tb_student st join tb_score sc on st.id = sc.

stu_id group by sc.stu_id,name having count(sc.stu_id)>=2;

12樓:龍春玲我愛你

分組查詢group by

用SQL語句三種方法查詢秋季學期有2門以上課程獲90分以上成績的學生名

select 成績,課程名稱,姓名 from 成績,學生基本資訊,課程名稱 where學生基本資訊.學號 成績.學號 and 成績.課程編號 課程名稱.課程編號 and 成績 90 語句寫出,列出成績不在60分到90分之間的學生姓名和所在專業。22 用sql 26 用sql 語句寫出,查詢沒有考試成...

sql語句求每門課程的成績都在80分以上的學生的學號

select sno from student where sno not in select sno from sc where grade 80 select distinct sno from sc where cno in select cno from course where cteac...

我家入戶門直對著廁所門,而且比入戶門高了20多公分,臥室門也

我家入戶門直對抄著廁襲所門,而且比入戶門高了20多公 分,臥室門也是比入戶門高了20多公分?怎麼化解?我家入戶門直對著廁所門,而且比入戶門高了20多公分,臥室門也是比入戶門高了20多公分?怎麼化解?我家入戶門直對著廁所門,而且比入戶門高了20多公分,臥室門也是比入戶門高了20多公分?怎麼化解。入戶門...