當前位置:首頁 » 編程語言 » sql怎麼求成績不合格率
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql怎麼求成績不合格率

發布時間: 2022-09-24 21:56:52

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