SQL查詢某門課程及格的總人數以及不及格的總人數以及沒成績

時間 2021-09-10 02:25:56

1樓:匿名使用者

1、建立測試表,

create table test_score(class_id varchar2(20), student_id varchar2(20), score number);

2、插入測試資料

insert into test_score values ('c07', 1001, 50);

insert into test_score values ('c07', 1002, 72);

insert into test_score values ('c07', 1003, 85);

insert into test_score values ('c07', 1004, 91);

insert into test_score values ('c07', 1005, 48);

insert into test_score values ('c07', 1006, 79);

insert into test_score values ('c07', 1007, null);

3、查詢表的記錄,select t.*, rowid from test_score t;

4、編寫sql,查詢某某課程及格的總人數以及不及格的總人數以及沒成績的人數,

select class_id,

count(distinct case when score < 60 then student_id end) s1,

count(distinct case when score >= 60 then student_id end) s2,

count(distinct case when score is null then student_id end) s3

from test_score t group by class_id,

2樓:環柏

select sum(case when 成績》=60 then 1 else 0 end) as 及格人數,sum(case when 成績<60 then 1 else 0 end )as 不及格人數,sum(case when 成績 is null then 1 else 0 end )as 沒有成績人數 from 成績表

3樓:du瓶邪

兩種方法

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語句求助,查詢出每門課程及格和不及格的人數

4樓:管朵景密

用一條語句不好查,本身就是兩個條件,又返回的兩個結果,怎麼用一條語句?

5樓:

select col2,count(col1) as 及格學生人數,(count(*)-count(col1)) as 不及格學生人數

from td

where (col1>='60')

6樓:鱈舞

好難回答你問的問題,,,,,,因為你的表就沒有建好,如何讓人用一條語句就回答並不存在的東西呢。。。~~~~~~~希望你補充一下,然後大家才能幫你呢。。。。。

7樓:匿名使用者

--已經實現行轉列,得到的結果為科目--不及格人數--及格人數declare @tb table (col1 int,col2 int)

insert into @tb

select '50',1

union all

select '79',2

union all

select '58',3

union all

select '67',1

union all

select '95',2

union all

select '35',3

union all

select '48',1

union all

select '87',2

union all

select '66',3

union all

select '55',1

union all

select '77',2

union all

select '59',3

select col2,sum(不及格人數) as 不及格人數,sum(及格人數) as 及格人數

from(

select col2,isnull(case when col1 < 60 then count(*) end,'') as 不及格人數,isnull(case when col1 >= 60 then count(*) end,'') as 及格人數 from

@tbgroup by col2,col1

)tgroup by col2

8樓:隱半戎博耘

select

課程名稱,count(*)

as及格人數

from

成績表where

分數>=

60group

by課程名稱

select

課程名稱,count(*)

as不及格人數

from

成績表where

分數<60group

by課程名稱

9樓:慎燁諾紫薇

表結構什麼樣的啊?及格不及格條件呢?

10樓:

select 課程,flag,count(*)from (

select 課程,分數,case when 分數 >= 60 then '及格' else '不及格' end flag

from table

) tgroup by 課程,flag

11樓:

select * from tb where co1>60 where 課程='語文'

不級格就改為小於號

12樓:

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

13樓:匿名使用者

select col2,count(*) where col1<60 group by col2 --不及格

select col2,count(*) where col1》=60 group by col2 --及格

sql統計每門課程的不及格人數

14樓:庹熙系惜萍

select

學號,課程號,count(*)

as不及格人數

from

scwhere

分數<60

group

by學號,課程號

union

select

'不及格人數','->',sum(count(*))as不及格人數

from

scwhere

分數<60

group

by學號,課程號

order

by不及格人數

15樓:匿名使用者

你的要求有點特別,要求 學號!

如果只是

統計每門課程的不及格人數下面的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,給分喲呵呵

16樓:匿名使用者

統計每門課程不及格人數,那就根據課程號做分組統計即可,但是輸出時肯定不能輸出學號!學號是針對每個學生的。

select cnum,count(1) from sc where score<60 group by cnum

17樓:匿名使用者

snum,cnum,score < 60 (不及格分數如果是60的話)

18樓:

select snum,cnum

from sc

where score<60

order by score,snum

compute count(snum)

用compute,就可以同時返回學號,課程號,和分數啦……

19樓:閉鯨白俊賢

select

a.score

,count

as人數

,col2

as科目

from

(select

case

when

col1>=60

then

'及格'

else

'不及格'

endas

score

,col2

fromtbg

)agroup

bya.score,a.col2

20樓:匿名使用者

select cnum,count(snum)from sc

where score < 60

group snum

sql查詢 統計每門課的選課人數及不及格人數

21樓:匿名使用者

你確定你寫的這四個表沒有問題麼?如果你乙個學生 選了2個科目,你怎麼儲存這個資訊?

看完樓主發的**後,感覺你的描述和**表達的意思有出入。等待其他大蝦賜教,學習了

22樓:匿名使用者

select a.cnum,a.cname,a.rs,b.bjg_rs

from

(select sec.cnum,c.cname,count(s.snum) as 'rs'

from student s,course c,sc,sections sec

where s.snum = sc.snum and

sc.secnum = sec.secnum and

sec.cnum = c.cnum

group by sec.cnum,c.cname) a

left join

(select sec.cnum,c.cname,count(s.snum) as 'bjg_rs'

from student s,course c,sc,sections sec

where s.snum = sc.snum and

sc.secnum = sec.secnum and

sec.cnum = c.cnum and

sc.score < '60'

group by sec.cnum,c.cname) b

on a.cnum = b.cnum

單錶查詢及格和不及格人數,SQL 查詢某門課程及格的總人數以及不及格的總人數以及沒成績的人數

學過資料庫沒有啊,可以先把那些成績新增進資料庫裡面,然後再進行查詢。定義乙個變數 再加上if判斷 如果符合幾個的就給這個變數加上一 如果沒學過的話 還可以用陣列來做 select banji as 班級 sum decode fenshu 60,1,0 as 及格數 sum decode fensh...

SQL語句求助,查詢出每門課程及格和不及格的人數

管朵景密 用一條語句不好查,本身就是兩個條件,又返回的兩個結果,怎麼用一條語句? select col2,count col1 as 及格學生人數,count count col1 as 不及格學生人數 from td where col1 60 鱈舞 好難回答你問的問題,因為你的表就沒有建好,如何...

C統計一門課程不及格的人數的程式

using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.linq using system.text u...