21.MySQL中的聚合函数

目录

1.准备

2.COUNT()

3.SUM()

4.AVG()

5.MAX()

6.MIN()

7.GROUP_CONCAT()

8.JSON_ARRAYAGG()

9.JSON_OBJECTAGG()


函数名描述
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.准备

CREATE DATABASE mahaiwuji;
USE mahaiwuji;
CREATE TABLE goods (
	id INT,
	name VARCHAR (32),
	price INT
) ENGINE = INNODB DEFAULT CHARSET = utf8;

INSERT INTO goods VALUES (1,'书',10);
INSERT INTO goods VALUES (2,'键盘',11);
INSERT INTO goods VALUES (3,'鼠标',15);
INSERT INTO goods VALUES (4,'手机',20);
INSERT INTO goods VALUES (5,NULL,15);

2.COUNT()

SELECT COUNT(id) FROM goods; -- 5

SELECT COUNT(name) FROM goods; -- 4,NULL不统计

SELECT COUNT(price) FROM goods; -- 5

SELECT COUNT(DISTINCT price) FROM goods; -- 4,因为有2个15,不重复的数量为4

SELECT COUNT(*) FROM goods; -- 5

3.SUM()

SELECT SUM(price) FROM goods; -- 71

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

4.AVG()

SELECT AVG(price) FROM goods; -- 14.2

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

5.MAX()

SELECT MAX(price) FROM goods; -- 20

SELECT MAX(DISTINCT price) FROM goods; -- 20

6.MIN()

SELECT MIN(price) FROM goods; -- 10

SELECT MIN(DISTINCT price) FROM goods; -- 10

7.GROUP_CONCAT()

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

8.JSON_ARRAYAGG()

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

9.JSON_OBJECTAGG()

-- {"1": "书", "2": "键盘", "3": "鼠标", "4": "手机", "5": null}
SELECT JSON_OBJECTAGG(id,name) FROM goods; 

-- error,因为id为5的name是NULL,JSON中键不能为NULL
SELECT JSON_OBJECTAGG(name,price) FROM goods; 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL聚合函数是用于对数据集进行汇总计算的函数。常见的MySQL聚合函数包括: - AVG:计算某列的平均值 - SUM:计算某列的总和 - COUNT:计算某列的行数 - MAX:返回某列的最大值 - MIN:返回某列的最小值 - GROUP_CONCAT:将某列的值连接成一个字符串 这些聚合函数可以在SELECT语句的SELECT子句使用,通常与GROUP BY子句一起使用,用于按照指定的列进行分组,并计算每个组的聚合结果。聚合函数还可以与HAVING子句一起使用,用于对聚合结果进行筛选。 例如,以下是一些使用聚合函数MySQL查询示例: 1. 计算某列的平均值: ``` SELECT AVG(column_name) FROM table_name; ``` 2. 计算某列的总和: ``` SELECT SUM(column_name) FROM table_name; ``` 3. 计算某列的行数: ``` SELECT COUNT(column_name) FROM table_name; ``` 4. 返回某列的最大值: ``` SELECT MAX(column_name) FROM table_name; ``` 5. 返回某列的最小值: ``` SELECT MIN(column_name) FROM table_name; ``` 6. 将某列的值连接成一个字符串: ``` SELECT GROUP_CONCAT(column_name) FROM table_name; ``` 需要注意的是,聚合函数只能用于SELECT语句,不能用于WHERE、ORDER BY和HAVING子句。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【MySQL聚合函数](https://blog.csdn.net/Decade0712/article/details/129759317)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值