MySQL聚合函数

Posted Lin王发林

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL聚合函数相关的知识,希望对你有一定的参考价值。

  很多时候,我们查询数据的时候都不会把明细数据查询出来,那样一般意义也不大。更多的时候是根据业务需求,把数据聚合成业务能直接使用的数据。mysql中有5个聚合函数,如下面5个,用的最多的还是count和sum,下面分别介绍一下用法。



【COUNT】

  在MySQL中,COUNT()函数统计数据表中包含的记录行的总数,或者根据查询结果返回列中包含的数据行数,使用方法有以下两种:

  • COUNT(*)计算表中总的行数,无论某列有数值或者为空值;

  • COUNT(字段名)计算指定列下总的行数,计算时将忽略空值的行。

求order表中,查询一共有多少条订单数,SQL语句如下↓

SELECT  COUNT(*) AS 总计订单数FROM  sql_study.order;

MySQL聚合函数


【SUM】

  在MySQL中,SUM()是一个求总和的函数,返回指定列值的总和。

  • 如果在没有返回匹配行SELECT语句中使用SUM函数,则SUM函数返回NULL,而不是0;

  • DISTINCT运算符允许计算集合中的不同值;

  • SUM函数忽略计算中的NULL值。

求order表中所有产品销售数量,SQL语句如下↓

SELECT  SUM(数量) AS 产品销售总量FROM  sql_study.order;

MySQL聚合函数


【AVG】

  在MySQL中,AVG()函数通过计算返回的行数和每一行数据的和,求得指定列数据的平均值。

求order表中,2021年所有产品的平均单价,SQL语句如下↓

SELECT  AVG(单价) AS 产品平均价格FROM  sql_study.orderWHERE 日期 BETWEEN '2021-01-01' AND '2021-12-31'

MySQL聚合函数


【MAX/MIN】

  在MySQL中,MAX()函数是用来返回指定列中的最大值。

求order表中,查询最大的单价价格,SQL预计如下↓

SELECT  MAX(单价) AS 最大单价FROM  sql_study.order;

MySQL聚合函数

  在MySQL中,MIN()函数是用来返回指定列中的最小值。

求order表中,查询最小的单价价格,SQL预计如下↓

SELECT  MIN(单价) AS 最低单价FROM  sql_study.order

MySQL聚合函数


【结合GROUP BY】

  正常情况下,聚合函数都是搭配着GROUP BY来使用的。可以是按省份聚合、产品聚合、时间聚合等等。下面演示每个品牌最低单价的聚合,其他几个聚合函数使用方式一样,SQL语句如下↓

SELECT  p.品牌,MIN(o.单价) AS 产品最低单价FROM  sql_study.order as o  left JOIN sql_study.product as p on o.产品id=p.产品idGROUP BY o.产品id

MySQL聚合函数


  还可以用ORDER BY排个序,求每个品牌累计销售价格的SQL语句,从高到低排序↓

SELECT  p.品牌,sum(单价*数量) AS 产品总价FROM  sql_study.order as o  left JOIN sql_study.product as p on o.产品id=p.产品idGROUP BY o.产品idORDER BY sum(单价*数量) DESC

MySQL聚合函数

End

以上是关于MySQL聚合函数的主要内容,如果未能解决你的问题,请参考以下文章

4_MySQL_聚合函数和条件查询

MySQL 聚合函数聚合(组合)函数概述

MySQL聚合函数

26《MySQL 教程》聚合函数(聚合函数 MIN、MAX)

mysql 聚合函数相关问题

MySQL窗口函数_聚合函数