SQL经典查询语句查询4

2024-10-19 05:22:57

--1.查询报名人数大于等于30并且小于等于40的课程信息,要求显示课程名称和报名人数(使用BETWEEN…AND)

select [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='工程技术' )

)

猜你喜欢