SQL经典查询语句查询4
--1.查询报名人数士候眨塄大于等于30并且小于等于40的课程信息,要求显示课程名称和报名人数(使用BETWEEN…AND)
sele艘早祓胂ct [CouName],[WillNum]
from [dbo].[Course]
where [WillNum] between 30 and 40
--2.统计不同学分各有多少门课程。显示credit,count(*)字段。(group by)
select [Credit],count(*) '课程门数'
from [dbo].[Course]
group by [Credit]
--3.统计不同学分各有多少门课程,并显示课程详细信息。(compute ...by)
select *
from Course
order by Credit
compute count(couno) by credit
--4.查询周二上课的课程名称和教师名,并显示课程门数。(compute)
select CouName,Teacher
from dbo.Course
where SchoolTime like '周二%'
compute count(couname)
--5.查询平均报名人数大于30人的课程类别和每类平均报名人数。(group having)
select kind,AVG(willnum)
from Course
group by Kind
having AVG(willnum)>30
--6.在课程表中,按所开设课程的系部编号分别统计总共报名人数。(group having)
select [DepartNo],COUNT([WillNum])
from [dbo].[Course]
group by [DepartNo]
having COUNT([WillNum])>0
--7思考题:显示课程个数比工程技术类
--课程个数多的课程的信息。
--提示:分三步做
--1求工程技术类课程的个数=n
--select count(*)
--from course
--where kind='工程技术'
--2求课程个数大于n的课程的kind信息m。
--select kind
--from course
--group by kind
--having count(kind)>n
--3求课程全部信息,且课程类型为m的。
--(子查询)
--select * from course
--where kind=m
select *
from course
where kind in (select kind
from course
group by kind
having count(kind)>(select count(*)
from course
where kind='工程技术' )
)