简单数据查询——聚集函数、分组与排序

【实验四】

在Gradem或Gradem1数据库中完成下面查询:
(1) 统计有学生选修的课程的门数。

SELECT COUNT(DISTINCT cno) 
	FROM sc;

(2) 计算“c01”课程的平均成绩。

SELECT cno 课程,AVG(degree) 平均成绩
FROM sc 
WHERE cno='c01';	

(3) 查询选修了“c03”课程的学生的学号及其成绩,查询结果按分数降序排列。

SELECT sno 学号,degree 成绩 
FROM sc 
WHERE cno='c03' 
ORDER BY degree DESC;

(4) 查询各个课程号及相应的选课人数。

SELECT cno 课程号,COUNT(DISTINCT sno) 选课人数
FROM sc
GROUP BY cno; 

(5) 统计每门课程的选课人数和最高分。

SELECT cno 课程,COUNT(DISTINCT sno) 选课人数,MAX(degree) 最高分
FROM sc
GROUP BY cno;

(6) 统计每个学生的选课门数和考试总成绩,并按选课门数降序排列。

SELECT sno 学号,COUNT(DISTINCT cno) 选课数,SUM(degree) 总成绩
FROM sc
GROUP BY sno
ORDER BY sno DESC; 

(7) 查询选修了3门以上课程的学生学号。

SELECT sno 学号,COUNT(DISTINCT cno) 选课数
FROM sc
GROUP BY sno
HAVING COUNT(cno)>3; 

(8) 查询成绩不及格的学生学号及课号,并按成绩降序排列。

SELECT sno 学号,cno 课号,degree 成绩
FROM sc
WHERE degree<60
ORDER BY degree DESC; 

(9) 查询至少选修一门课程的学生学号。

SELECT sno 学号,COUNT(*) 选修数
FROM sc
GROUP BY sno
HAVING COUNT(*)>=1; 

(10) 统计输出各系学生的人数

SELECT sdept 系别,COUNT(*) 人数
FROM student
GROUP BY sdept; 

(11) 统计各系的男、女生人数。

SELECT sdept 系别 ,ssex 性别,COUNT(*) 人数
FROM student
GROUP BY sdept,ssex;

(12) 统计各班人数。

SELECT classno 班级,COUNT(*) 人数
FROM student
GROUP BY classno;

(13)统计各班男、女生人数。

SELECT classno 班级,ssex 性别,COUNT(*) 人数
FROM student
GROUP BY classno,ssex; 

(14)统计各系的老师人数,并按人数升序排序。

SELECT deptno 系别,COUNT(*) 人数
FROM teacher
GROUP BY deptno
ORDER BY COUNT(*);

(15)统计不及格人数超过10人的课程号。

SELECT cno,COUNT(*)
FROM sc
WHERE degree<60
GROUP BY cno
HAVING COUNT(*)>10;

(16)统计选修人数超过10人的课程号。

SELECT cno 课程号,COUNT(*) 选修人数
FROM sc
GROUP BY cno
HAVING COUNT(*)>10; 

(17) 查询软件系的男生信息,查询结果按出生日期升序排序,出生日期相同的按地址降序排序。

SELECT *
FROM student
WHERE sdept='软件系' AND ssex='男'
ORDER BY sbirthday ASC, saddress DESC;
  • 50
    点赞
  • 171
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值