MySQL 结果排序-- 聚集函数- 一、环境准备
- 二、查询结果排序
- 三、查询的分组与汇总
- 3.1、查一下 学生们平均年龄
- 3.2、查一下总人数是多少
- 3.3、查一下每个年龄有多少人
- 3.4、查出最大年龄
- 3.5、查询出男女各多少人
- 3.6、查询成绩的总分的是多少
- 自言自语
- 3.1、查一下 学生们平均年龄
- 3.2、查一下总人数是多少
- 3.3、查一下每个年龄有多少人
- 3.4、查出最大年龄
- 3.5、查询出男女各多少人
- 3.6、查询成绩的总分的是多少
- 自言自语
一、环境准备
代码语言:javascript复制CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '学号',
`student_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '学生姓名',
`sex` varchar(5) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '性别rn',
`age` int(11) NULL DEFAULT NULL COMMENT '年龄',
`result` double(10, 0) NULL DEFAULT NULL COMMENT '成绩',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
INSERT INTO `student` VALUES (1, '小王', '男', 18, 90);
INSERT INTO `student` VALUES (2, '小李', '女', 19, 80);
INSERT INTO `student` VALUES (3, '小明', '男', 20, 85);
INSERT INTO `student` VALUES (4, '小张', '男', 21, 87);
二、查询结果排序
平常应用比较多的就是筛选热度产品、或者微博热搜。
语法格式:
SELECT 字段名1… FROM 表名 ORDER BY 字段名1 [ASC | DESC ] ,字段名2 [ASC | DESC ]…;
字段名1 、2 是对查询结果排序的依据。 ASC 表示升序 DESC表示降序。 默认是ASC。
举个爪子:
代码语言:javascript复制SELECT * FROM student ORDER BY age DESC ;
当后面跟两个排序规则的时候,是第一个字段名相同的时候,才按照第二个字段名排序规则排序。
剩下自己摸索。
思考:
查找 age 降序 student_name 升序 该怎么写?
三、查询的分组与汇总
聚集函数
函数 | 作用 |
---|---|
AVG() | 返回某列的平均值 (平均值) |
COUNT() | 返回某列的行数 (统计) |
MAX() | 返回某列的最大值 (最大值) |
MIN() | 返回某列的最小值 (最小值) |
SUM() | 返回某列值之和(求和) |
3.1、查一下 学生们平均年龄
代码语言:javascript复制select AVG(age) as "年龄" from student;
3.2、查一下总人数是多少
代码语言:javascript复制select count(id) as "总人数" from student;
3.3、查一下每个年龄有多少人
代码语言:javascript复制select age, count(id) as "总人数" from student GROUP BY age;
3.4、查出最大年龄
代码语言:javascript复制select MAX(age) as "最大年龄" from student ;
小于一样。
3.5、查询出男女各多少人
代码语言:javascript复制select sex ,count(*) AS "人数" from student GROUP BY sex;
#GROUP BY 是将结果按照 后面跟的字段名分组
3.6、查询成绩的总分的是多少
代码语言:javascript复制select sum(result) as "成绩总分" FROM student;
自言自语
第一次摸鱼。