这个Oracle教程解释了如何使用Oracle / PLSQL AVG函数。

Oracle / PLSQL AVG函数计算表达式的平均值。

Avg 函数对一组行进行操作,并返回一行输出。

空值被avg忽略。

您可以使用DISTINCT关键字排除重复条目。

语法

Oracle / PLSQL AVG函数的语法是:

SELECT AVG( expression )

FROM tables

WHERE conditions;

表达式可以是数字字段或公式。

以下sql语句计算employee表中salary列的平均值。

SELECT AVG(salary) AS "Avg Salary"

FROM employees

WHERE salary > 25000;

我们将AVG(salary)表达式别名为“Avg Salary”。

实例

以下代码显示了如何为employee表的salary列计算平均值。

SQL> CREATE TABLE EMP (EMPNO NUMBER(4) NOT NULL,

2 ENAME VARCHAR2(10),

3 JOB VARCHAR2(9),

4 SAL NUMBER(7, 2),

5 DEPTNO NUMBER(2));

SQL> INSERT INTO EMP VALUES (1, 'SMITH', 'CLERK', 800, 20);

SQL> INSERT INTO EMP VALUES (2, 'ALLEN', 'SALESMAN', 1250, 30);

SQL> INSERT INTO EMP VALUES (3, 'WARD', 'SALESMAN', 1250, 30);

SQL> INSERT INTO EMP VALUES (4, 'JONES', 'MANAGER', 2975, 20);

SQL> INSERT INTO EMP VALUES (5, 'MARTIN','SALESMAN', 1250, 30);

SQL> INSERT INTO EMP VALUES (6, 'BLAKE', 'MANAGER', 2850, 30);

SQL> INSERT INTO EMP VALUES (7, 'CLARK', 'MANAGER', 2850, 10);

SQL> INSERT INTO EMP VALUES (8, 'SCOTT', 'ANALYST', 3000, 20);

SQL> INSERT INTO EMP VALUES (9, 'KING', 'PRESIDENT',3000, 10);

SQL> INSERT INTO EMP VALUES (10,'TURNER','SALESMAN', 1500, 30);

SQL> INSERT INTO EMP VALUES (11,'ADAMS', 'CLERK', 1500, 20);

SQL> select avg(sal) from emp;

AVG(SAL)

----------

2020.45455

SQL>

示例 - AVG函数中使用GROUP BY

AVG函数中使用 group by子句:

SQL> select job, avg(sal) from emp group by job;

JOB AVG(SAL)

--------- ----------

CLERK 1150

SALESMAN 1312.5

PRESIDENT 3000

MANAGER 2891.66667

ANALYST 3000

SQL>

示例 - AVG函数中使用公式

avg函数内部使用数字计算:

SQL> select job, avg(sal+ 1000) from emp group by job;

JOB AVG(SAL+1000)

--------- -------------

CLERK 2150

SALESMAN 2312.5

PRESIDENT 4000

MANAGER 3891.66667

ANALYST 4000

SQL>

示例 - AVG函数中使用DISTINCT

获取唯一的平均值:

SQL> select job, avg(distinct sal) from emp group by job;

JOB AVG(DISTINCTSAL)

--------- ----------------

ANALYST 3000

CLERK 1150

MANAGER 2912.5

PRESIDENT 3000

SALESMAN 1375

SQL>

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐