返回顶部
首页 > 资讯 > 数据库 >SQL AVG函数
  • 869
分享到

SQL AVG函数

sql数据库mysql 2023-09-26 05:09:59 869人浏览 泡泡鱼
摘要

sql AVG函数 SQL AVG函数简介 SQL AVG函数是一个聚合函数,用于计算集合的平均值。 以下说明了SQL AVG函数的语法: AVG([ALL|DISTINCT] expression)

sql AVG函数

SQL AVG函数简介

SQL AVG函数是一个聚合函数,用于计算集合的平均值。 以下说明了SQL AVG函数的语法:

AVG([ALL|DISTINCT] expression)

如果使用ALL关键字,AVG函数将获取计算中的所有值。 默认情况下,无论是否指定,AVG函数都使用ALL。

如果明确指定DISTINCT关键字,AVG函数将仅在计算中采用唯一值。例如,有一组数据集(1,2,3,3,4)并将AVG(ALL)应用于此集合,AVG函数将执行以下计算:

(1+2+3+3+4)/5 = 2.6

但是,如果指定:AVG(DISTINCT)将按如下方式处理:

(1+2+3+4)/4 = 2.5

SQL AVG函数示例

将使用示例数据库中的employees表来演示SQL AVG函数的工作原理。 以下图片说明了employees表的结构:

mysql> desc employees;+---------------+--------------+------+-----+---------+----------------+| Field         | Type         | Null | Key | Default | Extra          |+---------------+--------------+------+-----+---------+----------------+| employee_id   | int(11)      | NO   | PRI | NULL    | auto_increment || first_name    | varchar(20)  | YES  |     | NULL    |                || last_name     | varchar(25)  | NO   |     | NULL    |                || email         | varchar(100) | NO   |     | NULL    |                || phone_number  | varchar(20)  | YES  |     | NULL    |                || hire_date     | date         | NO   |     | NULL    |                || job_id        | int(11)      | NO   | MUL | NULL    |                || salary        | decimal(8,2) | NO   |     | NULL    |                || manager_id    | int(11)      | YES  | MUL | NULL    |                || department_id | int(11)      | YES  | MUL | NULL    |                |+---------------+--------------+------+-----+---------+----------------+10 rows in set

要计算所有员工的平均工资,请将AVG函数应用于salary列,如下所示:

SELECT     AVG(salary)FROM    employees;

执行上面示例代码,得到以下结果:

+-------------+| AVG(salary) |+-------------+| 8060        |+-------------+1 row in set

应用DISTINCT运算符来查看结果是否发生了变化:

SELECT     AVG(DISTINCT salary)FROM    employees;

执行上面示例代码,得到以下结果:

+----------------------+| AVG(DISTINCT salary) |+----------------------+| 7845.454545          |+----------------------+1 row in set

如上结果有改变,因为一些员工有相同的薪水。要将结果舍入为2位小数,请使用ROUND函数,如下所示:

SELECT     ROUND(AVG(DISTINCT salary), 2)FROM    employees;

要计算值子集的平均值,在SELECT语句中添加WHERE子句。 例如,要计算部门ID为5中员工的平均工资,使用以下查询:

SELECT    AVG(DISTINCT salary)FROM    employeesWHERE    department_id = 5;

以下语句返回工作岗位ID为6的员工的平均工资:

SELECT     AVG(salary)FROM    employeesWHERE    job_id = 6;

执行上面示例代码,得到以下结果:

+-------------+| AVG(salary) |+-------------+| 7920        |+-------------+1 row in set

带有GROUP BY子句的SQL AVG示例
要计算组的平均值,将AVG函数与GROUP BY子句一起使用。 例如,以下语句返回各部门的员工和员工的平均工资。

SELECT    department_id,    AVG(salary)FROM    employeesGROUP BY    department_id;

执行上面示例代码,得到以下结果:

在这里插入图片描述
可以使用inner join子句将employees表与departments表连接起来以获取部门名称数据:

SELECT    e.department_id,    department_name,    AVG(salary)FROM    employees eINNER JOIN departments d ON d.department_id = e.department_idGROUP BY    e.department_id;

执行上面示例代码,得到以下结果:

在这里插入图片描述

带有ORDER BY子句的SQL AVG示例

要对包含AVG结果的结果集进行排序,请使用AVG函数与ORDER BY子句,如下所示:

SELECT    e.department_id,    department_name,    AVG(salary)FROM    employees eINNER JOIN departments d ON d.department_id = e.department_idGROUP BY    e.department_idORDER BY    AVG(salary) DESC;

执行上面查询语句,得到以下结果:

在这里插入图片描述

SQL AVG与HAVING子句示例

要过滤分组,请AVG函数中使用HAVING子句。 例如,以下语句获取平均薪水小于5000的部门:

SELECT    e.department_id,    department_name,    AVG(salary) AS avgsalaryFROM    employees eINNER JOIN departments d ON d.department_id = e.department_idGROUP BY    e.department_idHAVING avgsalary<5000ORDER BY    AVG(salary) DESC;

执行上面查询语句,得到以下结果:

+---------------+-----------------+-----------+| department_id | department_name | avgsalary |+---------------+-----------------+-----------+|             1 | 管理            | 4400      ||             3 | 采购            | 4150      |+---------------+-----------------+-----------+2 rows in set

SQL AVG与子查询

可以在单个SQL语句中多次应用AVG函数来计算一组平均值的平均值。

例如,可以使用AVG函数计算每个部门员工的平均工资,并再次应用AVG函数来计算部门的平均工资。以下查询演示了这个实现:

SELECT    AVG(employee_sal_avg)FROM    (        SELECT            AVG(salary) employee_sal_avg        FROM            employees        GROUP BY            department_id    ) t;

查询语句的工作原理。

  • 子查询返回每个部门的一组员工平均工资。
  • 外部查询返回部门的平均工资。

在本教程中,您学习了如何使用SQL AVG函数计算集合的平均值。

来源地址:https://blog.csdn.net/QYgujingjing/article/details/129965911

您可能感兴趣的文档:

--结束END--

本文标题: SQL AVG函数

本文链接: https://lsjlt.com/news/417835.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • SQL AVG函数
    SQL AVG函数 SQL AVG函数简介 SQL AVG函数是一个聚合函数,用于计算集合的平均值。 以下说明了SQL AVG函数的语法: AVG([ALL|DISTINCT] expression)...
    99+
    2023-09-26
    sql 数据库 mysql
  • sql中avg函数的用法
    sql 中的 avg 函数用于计算数字值的平均值。它的语法是 avg(column_name)。avg 函数会忽略 null 值。可以使用 as 关键字为结果指定别名。它只适用于数字类型...
    99+
    2024-05-02
  • mysql中avg函数怎么用
    在mysql中使用avg函数的方法:avg函数是用于计算一组值或表达式的平均值,语法:SELECT AVG(column_name) FROM 'table_name';avg函数作用:mysql中avg函数的作用是...
    99+
    2024-04-02
  • oracle avg函数的用法是什么
    Oracle中的AVG函数用于计算指定列的平均值。它的语法如下: AVG(column_name) 其中,column_name是...
    99+
    2024-04-15
    oracle
  • oracle avg函数的功能有哪些
    Oracle的AVG函数用于计算指定列的平均值。它的功能包括: 计算指定列的平均值。可以用于数值型数据类型,如整数、小数等。AVG...
    99+
    2024-04-15
    oracle
  • oracle avg函数怎么保留两位小数
    在Oracle中使用AVG函数计算平均值时,可以使用TO_NUMBER函数将结果转换为保留两位小数的形式。示例如下: SELEC&#...
    99+
    2024-04-09
    oracle
  • sql中avg是什么意思
    在 sql 中,avg 函数计算给定列或表达式的平均值。步骤如下:1. 指定要计算平均值的列或表达式。2. 将函数应用到需要计算平均值的数据集上。 SQL 中的 AVG 在 SQL 中...
    99+
    2024-05-09
    聚合函数
  • AVG函数计算平均值的奥秘
    AVG函数是一种用来计算一组数值的平均值的数据库函数。它通过将所有数值相加,然后除以数值的个数来得到平均值。在计算平均值时,AVG函数会忽略空值。 AVG函数的工作原理可以简单描述为以下步骤: 首先,AVG函数会将所有非空数值相加,得到总...
    99+
    2024-08-03
    sql server
  • SQL分组函数group by和聚合函数COUNT、MAX、MIN、AVG、SUM是什么以及怎么用
    本篇内容主要讲解“SQL分组函数group by和聚合函数COUNT、MAX、MIN、AVG、SUM是什么/用法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学...
    99+
    2024-04-02
  • 学习使用MySQL 求平均值函数AVG
    学习使用MySQL 求平均值函数AVG MySQL AVG() 函数 MySQL AVG() 函数 MySQL AVG() 函数通过计算返回的行数和每一行数据的和,求得指定列数据的平均...
    99+
    2023-09-01
    微信小程序 小程序 php
  • oracle avg函数的应用场景有哪些
    数据分析:在数据分析过程中,可以使用Oracle的AVG函数来计算数据集的平均值,帮助分析师了解数据的整体趋势和分布情况。 ...
    99+
    2024-04-15
    oracle
  • oracle avg函数的使用方法是什么
    在Oracle数据库中,可以使用AVG函数来计算某个列的平均值。该函数的基本语法如下: SELECT AVG(column_...
    99+
    2024-04-09
    oracle
  • sql函数
    除数为0处理:decode(sum(ZK_QPQYJE),0,0,sum(ZK_BNTZMB)/sum(ZK_QPQYJE))*100 nddcl ...
    99+
    2018-09-02
    sql函数
  • SQL中的函数——NVL()函数
    NVL(exp1,exp2)函数时判断判断某个值是否为null。若为null,则返回exp2,否则返回exp1 ---格式1 select nvl(exp1,exp2) from db_table ---例子 sel...
    99+
    2018-05-27
    SQL中的函数——NVL()函数
  • SQL中的函数——Round()函数
    Round(exp1,exp2)函数具有四舍五入的功能,分为以下两种情况: 1.exp2数为非负 四舍五入的位数从小数点后开始计数,小数点后|exp2|位,看後一位,进本位,后面舍去 select Round(125....
    99+
    2022-03-05
    SQL中的函数——Round()函数
  • php怎么求数组平均值avg
    实现步骤:1、利用array_sum()函数计算数组中所有元素的总和,语法“$sum=array_sum($arr);”;2、利用count()函数计算数组的长度,语法“$len=count($arr);”;3、使用“/”运算符将元素总和除...
    99+
    2024-04-02
  • SQL-特殊函数
    函数 结果 DECODE decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值) 该函数的含义如下:IF条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THEN RETURN...
    99+
    2020-12-12
    SQL-特殊函数
  • SQL表值函数
    1、多语句表值函数 -- ============================================= -- Author: <Author,,Name> -- ...
    99+
    2024-04-02
  • sql的exits函数
    oracle的exits函数          select t.fene     &...
    99+
    2024-04-02
  • sql concat()函数
    1.concat() concat()函数用于将两个字符串连接起来,形成一个单一的字符串 eg: employee_tbl idnamework_datedaily1John2007-01-242502Ram2007-0...
    99+
    2023-09-02
    sql mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作