写点什么

聚合函数

用户头像
在即
关注
发布于: 2021 年 03 月 31 日
聚合函数

通过前面的学习可知,在对数据进行分组统计时,经常需要结合 MySQL 提供的聚合函数才能够统计出具有价值的数据。

例如,获取每种商品分类下的商品数量、最高价格的商品、最低价格的商品等。

为此,MySQL 中的聚合函数就可在查询数据时提供一些特殊的功能。

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

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

单独使用聚合函数统计数据

mysql> SELECT MAX(price), MIN(price) FROM sh_goods;

+------------+------------+

| MIN(price) | MAX(price) |

+------------+------------+

|    5999.00 |       0.50 |

+------------+------------+

1 row in set (0.00 sec)

聚合函数与分组结合使用统计数据

mysql> SELECT category_id, MAX(price), MIN(price)

    -> FROM sh_goods GROUP BY category_id HAVING COUNT(*) > 2;

+-------------+------------+------------+

| category_id | MAX(price) | MIN(price) |

+-------------+------------+------------+

|           3 |      15.00 |       0.50 |

+-------------+------------+------------+

1 row in set (0.00 sec)

MySQL5.7.22 中新增函数 JSON_ARRAYAGG()和 JSON_OBJECTAGG()

mysql> SELECT category_id, JSON_ARRAYAGG(id), JSON_OBJECTAGG(id, name)

    -> FROM sh_goods GROUP BY category_id;

+-------------+-------------------+-------------------------------------------+

| category_id | JSON_ARRAYAGG(id) | JSON_OBJECTAGG(id, name)                  |

+-------------+-------------------+-------------------------------------------+

|           3 | [1, 2, 3]         |   |

|           6 | [5]               | |

|           8 | [6]               |  |

|           9 | [7]               |  |

|          10 | [8]               |  |

|          12 | [4]               | |

|          15 | [9]               | |

|          16 | [10]              |  |

+-------------+-------------------+-------------------------------------------+

8 rows in set (0.00 sec)

算术运算符适用于数值类型的数据,通常应用在 SELECT 查询结果的字段中使用,在 WHERE 条件表达式中应用较少。


发布于: 2021 年 03 月 31 日阅读数: 8
用户头像

在即

关注

还未添加个人签名 2021.02.27 加入

还未添加个人简介

评论

发布
暂无评论
聚合函数