A. 一條sql語句查詢出三年級所有老師所帶學生的及格率 :老師名稱 老師所帶學生數目 及格學生數目
select C_TEACH_NAME,(select count(*) as count0 from c,e,f where c.C_TEACH_CODE=e. C_TEACH_CODE and e.C_CLASS_CODE=f.C_CLASS_CODE group by C_TEACH_NAME),(select count(*) as count1,round(count1/count0,2) from c,e,f,g where c.C_TEACH_CODE=e. C_TEACH_CODE and e.C_CLASS_CODE=f.C_CLASS_CODE and f.C_STUDENT_CODE=g.C_STUDENT_CODE and N_STUDENT_SCORE>=60 group by C_TEACH_NAME) from c group by C_TEACH_NAME;
B. 一張學生成績表內SQL查詢每個班級每門課程的平均分
平均分:
select avg(分數) from a group by 班級,課程
及格率:
select (select count(*) from a where 分數>60 group by 班級,課程)
/(select count(*) from a group by 班級,課程)
C. 寫一句sql 求科目數及格率 百分比顯示
SELECTco,SUM(CASEWHENsco>=60THEN1ELSE0END)/(COUNT(*)*1.0)AS及格率
FROMXXX
GROUPBYco;
SELECTco,CAST(FLOOR(SUM(CASEWHENsco>=60THEN1ELSE0END)/(COUNT(*)*1.0)*100)ASVARCHAR)+'%'AS及格率
FROMXXX
GROUPBYco;
D. 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
E. sql select語句求及格率(帶百分號)
select cast( cast ( ( select count(1) as jige from 表 where 課程名稱 = 'C語言' and 分數 >= 60 ) as numeric(10,4) ) / cast ( ( select count(1) as jige from 表 where 課程名稱 = 'C語言' ) as numeric(10,4) ) * 100 as varchar(20) ) + '%'
F. 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
-----這應該是樓主想要的了吧。
G. 求各班各科及格率的sql語句
select 班級,課程,count(*)/40 as 及格率 from 表名 where 成績>60 group by 班級,課程
H. 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,給分喲
呵呵