MYSQL聚合函数

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 写在末尾

本篇属于比较简单一篇,比较容易看懂。

虽然简单,如果搭配这个与其他编程语言配合使用,将有不错的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值