@[TOC]
0 写在前面
有一些数据可以直接在sql里求值,不用非得在业务逻辑上算,所以记录一下。
MySQL聚合函数有:
AVG()函数
,求平均数
COUNT()函数
,求个数
SUM()函数
,求总和
MAX()函数
,求最大值
MIN()函数
,求最小值
1 SQL准备
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for scores
-- ----------------------------
DROP TABLE IF EXISTS `scores`;
CREATE TABLE `scores` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '姓名',
`math_scores` int(8) NULL DEFAULT NULL COMMENT '数学成绩',
`english_scores` int(8) NULL DEFAULT NULL COMMENT '英语成绩',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 21 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
-- ----------------------------
-- Records of scores
-- ----------------------------
INSERT INTO `scores` VALUES (1, '艾比', 95, 60);
INSERT INTO `scores` VALUES (2, '贝尔德', 100, 100);
INSERT INTO `scores` VALUES (3, '凯迪', 60, 25);
INSERT INTO `scores` VALUES (4, '黛莉亚', 98, 80);
INSERT INTO `scores` VALUES (5, '伊尔利', 70, 79);
INSERT INTO `scores` VALUES (6, '法比奥拉', 60, 21);
INSERT INTO `scores` VALUES (7, '盖坦', 96, 88);
INSERT INTO `scores` VALUES (8, '哈克姆', 66, 66);
INSERT INTO `scores` VALUES (9, '伊恩', 31, 90);
INSERT INTO `scores` VALUES (10, '杰克', 88, 34);
INSERT INTO `scores` VALUES (11, '卡德', 28, 80);
INSERT INTO `scores` VALUES (12, '拉斐特', 5, 90);
INSERT INTO `scores` VALUES (13, '玛德琳', 79, 64);
INSERT INTO `scores` VALUES (14, '奈西亚', 87, 59);
INSERT INTO `scores` VALUES (15, '奥巴马', 63, 78);
INSERT INTO `scores` VALUES (16, '巴塞尔', 100, 77);
INSERT INTO `scores` VALUES (17, '卡特', 79, 94);
INSERT INTO `scores` VALUES (18, '拉德克力夫', 58, 68);
INSERT INTO `scores` VALUES (19, '萨布丽娜', 21, 94);
INSERT INTO `scores` VALUES (20, '泰博', 90, 31);
SET FOREIGN_KEY_CHECKS = 1;
2 举例说明
2.1 AVG()
求平均数,假设我现在要求这个班里的数学和英语平均分数是多少。
sql:
SELECT
AVG( math_scores ) AS '数学平均成绩',
AVG( english_scores ) AS '英语平均成绩'
FROM
`scores`
结果:
2.2 COUNT()
求个数,假设我现在要求,取得数学分为100分的有多少个人
sql:
SELECT
count( math_scores )
FROM
`scores`
WHERE
math_scores = 100
2.3 SUM()
求总数,假设现在要求学生的英语成绩的总成绩
sql:
SELECT
SUM(math_scores)
FROM
`scores`
2.4 MAX()
求最大值,假设现在英语最高分是多少
sql:
SELECT
MAX(math_scores)
FROM
`scores`
2.5 MIN
求最小值,假设现在数学最低分是多少
sql:
SELECT
MIN( math_scores )
FROM
`scores`
3 写在末尾
本篇属于比较简单一篇,比较容易看懂。
虽然简单,如果搭配这个与其他编程语言配合使用,将有不错的效果。