❶ sql 查詢某門課程及格的總人數以及不及格的總人數以及沒成績的人數
兩種方法
select
case
when
score>60
then
'及格'
else
'不及格'
end
as
'類別',count
(*)
as
'人數'
from
db_score
group
by
case
when
score>60
then
'及格'
else
'不及格'
end
-------------------------------------
select
'不及格'
as
'類別'
,count(*)as
'人數'
from
db_score
where
score<60
union
all
select
'及格'
as
'類別'
,count(*)
as
'人數'
from
db_score
where
score>=60
❷ 怎麼用SQL語句查詢所有學生所學課程(單個學生學的多門課程)的最高分數,最低分數和平均分數
SELECT student.sno AS `學號`,student.sname AS `姓名`,MAX(grade) AS `最高分`,MIN(grade) AS `最低分`,AVG(grade) AS `平均分`
FROM sc JOIN student ON sc.sno = student.sno GROUP BY sc.sno ;
❸ SQL:查詢出姓王且所有功課都及格的學生信息(子查詢)
select *
from 學生表
where 姓名 like '王%'
and 學號 not in (select 學號 from 選課表 where 成績 <60)
❹ sql資料庫查詢 1、查詢學號尾數為4,5的信息 2、檢索所選課程都及格的學生信息 求助啊!!!!!
1.select * from 表名 where 學號 like '%[4,5]'
2.select * from 表名 group by 學生號 having 成績>avg(成績)
1.select * from XSQK,KC,XS_KC where XSQK.學號=XS_KC.學號 and XSQK.課程號=XS_KC.課程號 and XSQK.學號 like '%[4,5]'------------------*的部分是查詢所有列,你可以針對的填上你想要的列
2.select * from XSQK,KC,XS_KC -----------這是要從3個表中查詢
where XSQK.學號=XS_KC.學號 and XSQK.課程號=XS_KC.課程號 -------這是3個表關聯到一起
and XS_KC.學號 in---------我限定的條件 學號在in裡面
(select XS_KC.學號 from XS_KC group by XS_KC.學號 having min(成績)>60)
------------嵌套的查詢是 通過學號分組 每個人有多個成績,最小的成績大於60 說明他所有成績都大於60 ,返回的是學號,
-----------------最終結果是 返回所有成績都大於60的所有同學的全部信息
如果不明白 追問
❺ sql練習:查詢所有課程成績小於60 分的同學的學號、姓名;
(2)這么寫坑定不對,這么寫得出的答案是「上過那個老師的課程的學生」而不是「上過那個老師所有課程的學生」,而且那個答案效率太低,還不如這個:
select sno,sname from student
where sno in(select sno from sc
where cno in (select cno from course
where tno in (select tno from teacher where tname='諶燕')));
❻ SQL求選修課程在兩門以上並且都及格的學生號及總平均分
我只會oracle的寫法,其他資料庫可能會有所區別,請注意。而且就算這種寫法,因為無法實驗可能也有些出入,應該需要調試
select 學生號,avg(分數) from table where 分數>=60 group by 學生號 having count(*)>1
分數>60保證及格,這里首先查詢的是及格的學生,及格的學生如果count(*)>1,那麼他的選課一定是兩門或者兩門以上(我假定的選課表是一個學生一個課程一行)。不過這里有一個問題,假設一個學生選了三門課程,兩門及格一門不及格,那麼是不是需要統計,按照你的需求
「兩門以上並且都及格」,現在這個語句好像與你的要求不是那麼符合。
所以還有一個版本
select table.學生號,avg(table.分數) 平均分 from table,(select 學生號,count(*) 選課數 from table group by 學生號 having 選課數>1)a where table.分數>60 group by 學生號 having table.學生號=a.學生號 and a.選課數=count(*)
❼ sql 查詢出所有科目都及格了的同學的名字
換個思路,只要把有不及格成績的排除掉,剩下的肯定都是全部及格的。至於是什麼科目,有幾門科目,完全不用管
select name from score where name not in(
select name from score where score < 60
)
❽ sql語句查詢有5門課程不及格的學生學號姓名
select student_no,student_name from student
where score<60
group by student_no,student_name
having count(*)=5
❾ SQL語句求助,查詢出每門課程及格和不及格的人數
---以下在SQL2005執行通過--
---結果將以 科目、及格數、不及格數 顯示
select * from
(select col2,count(*) as [及格數]
from tb
where col1>=60
group by col2
)t
outer apply
(select count(*) as [不及格數]
from tb
where col1<60 and t.col2= col2
group by col2
)m
-----這應該是樓主想要的了吧。
❿ SQL命令如何「列出所有課程都及格了的同學的名字」
換個思路,只要把有不及格成績的排除掉,剩下的肯定都是全部及格的。至於是什麼科目,有幾門科目,完全不用管
select
name
from
score
where
name
not
in(
select
name
from
score
where
score
<
60
)