PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

mysql 聚合函数用法是什么

coldplay.xixi
coldplay.xixi 原创
2020-10-19 16:23:45 8612浏览

mysql聚合函数用法:1、使用select语句返回系列值的总数,代码为【select sum(数量) as 总数】;2、使用avg函数计算平均数,代码为【select avg(单价* 数量) as 平均金额】。

更多相关免费学习推荐:mysql教程(视频)

mysql聚合函数用法:

1、SUM函数:

我们先从SUM函数开始。这个函数通常在SELECT语句中使用,返回系列值的总数。假设产品项目经理想了解目前为止商品的总销售额,那么我们可以使用以下的查询脚本:

  SELECT SUM(数量) AS 总数 
  FROM ProductOrders

  执行语句将返回以下结果: 

  Total 
  ----------- 
  1837

2、AVG函数(平均函数)

使用方法和SUM类似,它给我们提供系列值的算术平均数。这次我们可以尝试稍微复杂点的任务:找出北美洲大陆所有订单的金额平均值。注意,我们需要将“数量”列和“单价”列相乘计算出每张订单的金额总数。查询脚本如下:

SELECT AVG(单价* 数量) As 平均金额 
FROM ProductOrders 
WHERE 所在地 = “北美洲”

    返回结果如下:

平均金额 
--------------------- 
862.3075

3、COUNT计数函数

  SQL提供了COUNT函数来查询满足设定标准的记录的数量。我们可以使用单独COUNT(*)语法来检索一个表内的行数。此外,还可以利用WHERE子句来设置计数条件,返回特定记录的条数。例如,假设我们的产品销售经理想了解公司处理了多少张要求购买100个以上产品的订单。下面是满足这个条件的SQL查询脚本:

SELECT COUNT(*) AS '大订单数量'
FROM ProductOrders
WHERE 数量> 100

    返回结果如下: 

大订单数量 
---------------------- 
3

  COUNT函数还允许使用 DISTINCT关键字和表达式来计算满足表达式的值在目标数据中出现的数量。同样地,还可以使用ALL关键字来返回满足表达式的值的全部数量,不管其中有没有重复值。例如,产品经理想通过一个简单查询返回数据库中“所在地”的数量。

  首先我们来看看使用ALL关键字的查询:

SELECT COUNT(ALL 所在地) As '所在地数量'
FROM ProductOrders

    返回的结果为:

所在地数量 
-------------------- 
7

  显然这不是我们需要的结果。因为根据ProductOrders表所示,所有订单的所在地只有三个,分别是北美洲、非洲、欧洲。下面让我们来用DISTINCT关键字来代替看看:

SELECT COUNT(DISTINCT 所在地) As '所在地数量'
FROM ProductOrders

    返回的结果为:

所在地数量
-------------------- 
3

这才是我们想要的结果。

4、最大值和最小值

  在本文的最后一节,我们来看看SQL为我们提供用来查找满足给定表达式的最大值和最小值的函数。MAX()函数返回给定数据集中的最大值。我们可以给该函数一个字段名称来返回表中给定字段的最大值。还可以在MAX()函数中使用表达式和GROUP BY从句来加强查找功能。

  还是ProductOrders表,假设我们的产品经理想要从这个数据库中找到给公司带来最多收入的那份订单。我们可以使用以下查询来找到这张订单,并返回该订单的销售总金额:

  SELECT MAX(数量 * 单价)As '最大的订单' 
  FROM ProductOrders

  返回结果如下: 

  最大的订单 
  --------------------- 
  2517.58

  MIN()函数的用法类似,但返回表达式的最小值。让我们用MIN()函数来尝试稍微复杂一点的查询。我们的销售部门目前正在分析小订单的数据。他们想要查询每个所在地的最小订单。这除了要在表达式中计算值外,还需要用到GROUP BY从句来总结所在地的数据。SQL查询如下:

SELECT 所在地, MIN(数量 * 单价) AS '最小订单'
FROM ProductOrders 
GROUP BY 所在地

    返回结果如下:

所在地       最小订单
------------- --------------------- 
非洲         167.04
欧洲        2099.02
北美洲    70.65
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。