use JWGL_DB
go
--彙總人數
--(1)查詢學生的總人數
select COUNT(學生.學號) as "學生總人數"
from 學生
--(2)查詢所有學生所有課程成績的平均成績 (是否每門課程都要分類並統計它的平均成績?)
select 學號,(Sum(課程成績)/Count(distinct 課程編號)) as "所有學課程平均成績",Count(課程編號) as "課程總數"
from [學生_課程]
Group By 學號
--(3)查詢所有學生所有成績的總分
select 學號,SUM(課程成績) as "總分成績"
from [學生_課程]
Group By 學號
Order by 總分成績 asc
--(4)查詢所有學生成績的最高分和最低分
select 學號,Max(課程成績) as "最高分",MIN(課程成績) as "最低分"
from [學生_課程]
Group By 學號
--(5)查詢已經選課的學生的人數 (已經選課,是指必修還是選修)
select COUNT(distinct 學號) as "選課人數"
from [學生_課程]
--(6)查詢課程編號爲1001的課程成績低於60的學生人數
select 學號,課程成績
from [學生_課程]
where 課程編號='1001' and 課程成績<60
--2創建分組查詢
--(1)查詢每個選課了的學生的總成績、平均成績和學號,並按平均成績排序
select 學號,sum(課程成績) as 總成績,AVG(課程成績) as "平均成績" --Avg()等效於SUM(課程成績)/COUNT(課程編號)
from [學生_課程]
Group By 學號
Order By 平均成績 desc --降序desc 升序 asc
--(2)查詢不同課程的平均成績及課程編號,並按平均成績排序
select 課程編號,avg(課程成績) as "平均成績"
from [學生_課程]
Group By 課程編號
--(3)查詢已選課程的選課人數及課程編號
select count(distinct 學號) as "選課人數"
from [學生_課程]
--(4)查詢選課人數大於30的課程編號和選課人數
select 課程編號,COUNT(distinct 學號) as "選課人數"
from [學生_課程]
group by 課程編號
having COUNT(distinct 學號)>=6 --[n,11],n=課程編號,n1=0,n屬於z
--(5)查詢選修了兩門或兩門以上課程的學生的學號和課程編號 找記錄 再從記錄統計
select 學號,Count(學號) as "選修課程數>2或>=2的數量"
from [學生_課程]
group by 學號
having COUNT(學號)>=2
--(6)查詢成績低於60、選課人數大於30的課程編號和選課人數
select 課程編號,COUNT(課程編號) as 選課人數
from [學生_課程]
where 課程成績<60
group by 課程編號 --課程成績
having COUNT(課程編號)>0 --[n,3]
寫於2013-05-07-08:36