mysql_2-3聚合函数统计数据
一、 聚合函数
MySQL中的聚集函数用于对一组值进行计算,并返回单个值。这些函数通常与GROUP BY子句一起使用,以便对分组的数据进行统计。
- 语法:
- 实例:
-
a. 查询学生总数。
-
SELECT COUNT(*) FROM student;
-
-
b. 查询选修了课程的学生人数。
-
SELECT COUNT(DISTINCT sno) FROM sc;
-
-
c. 计算C01号课程的学生平均成绩、
-
SELECT AVG(degree) FROM sc WHERE cno='C01';
-
-
d. 查询选修了C01号课程的学生最高分和最低分。
-
SELECT MAX(degree) AS ‘最高分’,MIN(degree) AS ‘最低分’ FROM sc WHERE cno='C01';
-
-
e. 查询学号为“2007010105”的学生的总成绩及平均成绩
-
SELECT SUM(degree) AS 总成绩,AVG(degree) AS 平均成绩 FROM sc WHERE sno=' 2007010105';
-
二、 分组筛选
使用GROUP BY子句可以将查询结果按照某一列或多列数据值进行分类,换句话说,就是对查询结果的信息进行归纳,以汇总相关数据。
- 语法:
- 实例:
-
a. 统计各系学生数。
-
SELECT sdept,COUNT(*) 各系人数 FROM student GROUP BY sdept;
-
-
b. 统计student表中男、女学生人数
-
SELECT ssex,COUNT(*) 人数 FROM student GROUP BY ssex;
-
-
c. 统计各系男、女生人数。
-
SELECT sdept,ssex,COUNT(*) FROM student GROUP BY sdept,ssex;
-
-
d. 统计各系女生人数。
-
SELECT sdept,COUNT(*) 各系女生人数 FROM student WHERE ssex='女' GROUP BY sdept; -
SELECT sdept,COUNT(*) FROM student GROUP BY sdept,ssex HAVING ssex='女';
-
-
e. 查询选修了3门以上课程的学生学号。
-
SELECT sno FROM sc GROUP BY sno HAVING COUNT(*)>3;
-
三、 查询排序
使用ORDER BY子句可以对查询结果按照一个或多个字段进行升序(ASC)或降序(DESC)排序,默认值为升序。
- 语法:
- 实例:
-
a.查询选修了C02号课程的学生的学号及其成绩,查询结果按分数的降序排列。
-
SELECT sno,degree FROM sc WHERE cno='C02' ORDER BY degree DESC;
-
-
b. 查询全体学生情况,查询结果按所在系升序排列,同一系中的学生按出生日期降序排列。
-
SELECT * FROM student ORDER BY sdept ASC, sbirthday DESC;
-