㈠ sql語句求助:統計各班每門課程成績均不及格的同學人數
根據題目要求,簡單分析可以知道,其實這條查詢語句只使用「學生選課」和「學生」這兩張表即可。此處應該使用「左連接」,用學生表中的班級欄位進行「分組」,用COUNT()函數對分數小於60的同學的個數進行統計。
SELECT 學生.班級,COUNT(學生選課.成績<60)
FROM 學生選課
LEFT JOIN 學生
ON 學生選課.學生ID=學生.學生ID
GROUP BY 學生.班級
你可以進行驗證一下,如果不對,或者有更優化的方法,可以相互學習!
㈡ 如何用sql語句查出學生表成績小於60為不及格60-80為良好80-90為優秀
select name,case when 成績<60 then 不及格 when 成績>=60 and 成績<80 then 良好 when 成績>=0 and 成績<90 then 優秀 end as 成績情況 ,from 表名。
注意,在輸入sql語句的時候,要在英文環境下輸入。否則可能會出現代碼不識別。
㈢ 使用SQL命令實現查詢,查詢平均分不及格的學生人數。怎麼寫啊
已知:
選課表(學號,課程編號,成績)
查詢平均分不及格的學生人數的SQL代碼:
select 平均分不及格的學生人數 = count(*)
from 選課表
where 學號 in ( select 學號,avg(成績)
from 選課表
group by 學號
having avg(成績) < 60 )
㈣ SQL統計每門課程的不及格人數
你的要求有點特別,要求 學號!
如果只是
統計每門課程的不及格人數下面的SQL就可以啦:
select cnum,count(cnum) as 不及格人數
from sc
where score < 60
group by cnum 注意:是對課程號分組喲,樓上的是錯的。
如果你要輸出學號:
Select sc.snum as 學號,
a.cnum as 課程號,
a.不及格人數
From sc,
(select cnum,count(cnum) as 不及格人數
from sc
where score < 60
group by cnum) as a
where sc.score<60 and sc.cnum=a.cnum
以上我相信是沒有問題的,你測試一下!
如果OK,給分喲
呵呵
㈤ 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 查詢某門課程及格的總人數以及不及格的總人數以及沒成績的人數
你的要求有點特別,要求
學號!
如果只是
統計每門課程的不及格人數下面的sql就可以啦:
select
cnum,count(cnum)
as
不及格人數
from
sc
where
score
<
60
group
by
cnum
注意:是對課程號分組喲,樓上的是錯的。
如果你要輸出學號:
select
sc.snum
as
學號,
a.cnum
as
課程號,
a.不及格人數
from
sc,
(select
cnum,count(cnum)
as
不及格人數
from
sc
where
score
<
60
group
by
cnum)
as
a
where
sc.score<60
and
sc.cnum=a.cnum
以上我相信是沒有問題的,你測試一下!
如果ok,給分喲
呵呵
㈦ SQL 查詢某門課程及格的總人數以及不及格的總人數以及沒成績的人數
1、創建測試表,
create table test_score(class_id varchar2(20), student_id varchar2(20), score number);
㈧ SQL語句 統計各個學生的不及格科目數量及不及格率 ,2條語句
--創建表
createtablestudent
(
姓名nvarchar(20),
數學float,
語文float,
英語float,
體育float,
物理float,
化學float
)
go
--插入語句
insertintostudentvalues('楓',50,60,70,50,60,40)
insertintostudentvalues('巔',60,80,50,58,80,90)
go
--查詢
select*fromstudent
go
--不及格科目數量
;withtestas
(
(select姓名,'數學'科目,數學成績fromstudentwhere數學<60)unionall
(select姓名,'語文'科目,語文成績fromstudentwhere語文<60)unionall
(select姓名,'英語'科目,英語成績fromstudentwhere英語<60)unionall
(select姓名,'體育'科目,體育成績fromstudentwhere體育<60)unionall
(select姓名,'物理'科目,物理成績fromstudentwhere物理<60)unionall
(select姓名,'化學'科目,化學成績fromstudentwhere化學<60)
)
select姓名,count(姓名)不及格科目數量fromtestgroupby姓名
--不及格率
;withtestas
(
selectdistinct
(selectcount(姓名)fromstudent)a,
(selectcount(姓名)fromstudentwhere數學<60)b,
(selectcount(姓名)fromstudentwhere語文<60)c,
(selectcount(姓名)fromstudentwhere英語<60)d,
(selectcount(姓名)fromstudentwhere體育<60)e,
(selectcount(姓名)fromstudentwhere物理<60)f,
(selectcount(姓名)fromstudentwhere化學<60)g
fromstudent
)
select
convert(nvarchar(20),cast(basfloat)/a*100)+'%'數學不及格率,
convert(nvarchar(20),cast(casfloat)/a*100)+'%'語文不及格率,
convert(nvarchar(20),cast(dasfloat)/a*100)+'%'英語不及格率,
convert(nvarchar(20),cast(easfloat)/a*100)+'%'體育不及格率,
convert(nvarchar(20),cast(fasfloat)/a*100)+'%'物理不及格率,
convert(nvarchar(20),cast(gasfloat)/a*100)+'%'化學不及格率
fromtest
執行結果如圖所示
㈨ SQL語句求助:統計各班每門課程成績均不及格的同學人數
select
a.score
,count
as
人數
,col2
as
科目
from
(select
case
when
col1>=60
then
'及格'
else
'不及格'
end
as
score
,col2
from
tb
g
)
a
group
by
a.score,a.col2