码迷,mamicode.com
首页 > 数据库 > 详细

21.MySQL中的聚合函数

时间:2020-04-12 10:20:00      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:database   varchar   统计   charset   arch   --   nod   字段   函数名   

 

函数名描述
COUNT() 返回参数字段的数量,不统计为NULL的记录
SUM() 返回参数字段之和
AVG() 返回参数字段的平均值
MAX() 返回参数字段的最大值
MIN() 返回参数字段的最小值
GROUP_CONCAT() 返回符合条件的参数字段值的连接字符串
JSON_ARRAYAGG() 将符合条件的参数字段值做为单个JSON数组返回,MySQL5.7.22新增
JSON_OBJECTAGG() 将符合条件的参数字段值做为单个JSON对象返回,MySQL5.7.22新增

COUNT()、SUM()、AVG()、MAX()、MIN()和GROUP_CONCAT()函数中可以在参数前添加DISTINCT,表示对不重复的记录进行相关操作。

COUNT()的参数设置为“*”时,表示统计符合条件的所有记录(包含NULL)。

1.准备

 1 CREATE DATABASE mahaiwuji;
 2 USE mahaiwuji;
 3 CREATE TABLE goods (
 4     id INT,
 5     name VARCHAR (32),
 6     price INT
 7 ) ENGINE = INNODB DEFAULT CHARSET = utf8;
 8 ?
 9 INSERT INTO goods VALUES (1,,10);
10 INSERT INTO goods VALUES (2,键盘,11);
11 INSERT INTO goods VALUES (3,鼠标,15);
12 INSERT INTO goods VALUES (4,手机,20);
13 INSERT INTO goods VALUES (5,NULL,15);

2.COUNT()

1 SELECT COUNT(id) FROM goods; -- 5
2 ?
3 SELECT COUNT(name) FROM goods; -- 4,NULL不统计
4 ?
5 SELECT COUNT(price) FROM goods; -- 5
6 ?
7 SELECT COUNT(DISTINCT price) FROM goods; -- 4,因为有2个15,不重复的数量为4
8 ?
9 SELECT COUNT(*) FROM goods; -- 5

3.SUM()

1 SELECT SUM(price) FROM goods; -- 71
2 ?
3 SELECT SUM(DISTINCT price) FROM goods; -- 56,因为有2个15,只算了一个

4.AVG()

1 SELECT AVG(price) FROM goods; -- 14.2
2 ?
3 SELECT AVG(DISTINCT price) FROM goods; -- 14,因为有2个15,只算了一个

5.MAX()

1 SELECT MAX(price) FROM goods; -- 20
2 ?
3 SELECT MAX(DISTINCT price) FROM goods; -- 20

6.MIN()

1 SELECT MIN(price) FROM goods; -- 10
2 ?
3 SELECT MIN(DISTINCT price) FROM goods; -- 10

7.GROUP_CONCAT()

1 -- 书,键盘,鼠标,手机
2 SELECT GROUP_CONCAT(name) FROM goods; 

8.JSON_ARRAYAGG()

1 -- ["书", "键盘", "鼠标", "手机", null]
2 SELECT JSON_ARRAYAGG(name) FROM goods; 

9.JSON_OBJECTAGG()

1 -- {"1": "书", "2": "键盘", "3": "鼠标", "4": "手机", "5": null}
2 SELECT JSON_OBJECTAGG(id,name) FROM goods; 
3 ?
4 -- error,因为id为5的name是NULL,JSON中键不能为NULL
5 SELECT JSON_OBJECTAGG(name,price) FROM goods; 

21.MySQL中的聚合函数

标签:database   varchar   统计   charset   arch   --   nod   字段   函数名   

原文地址:https://www.cnblogs.com/mahaiwuji/p/12683632.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!