Oracle 19C学习 - 06. 聚合函数

聚合函数

聚合函数对行进行操作,以使每个组产生一个结果。

Oracle 19C学习 - 06. 聚合函数

 

 

AVG(字段)与SUM(字段)函数

Oracle 19C学习 - 06. 聚合函数

 查找最大和最小入职日期

SELECT MAX(hire_date), MIN(hire_date)
FROM employees
WHERE job_id LIKE '%PROG%';

MAX(HIRE_DATE)      MIN(HIRE_DATE)
------------------- -------------------
2007-05-21 00:00:00 2005-06-25 00:00:00

 

AVG函数遇到NULL的字段会忽略,比如十条记录求平均值,有两条记录是NULL,所以得到的结果是总数/8的结果。

要解决这个问题,需要使用NVL函数先将NULL值替换,然后嵌套在AVG函数内部求平均数。

SELECT AVG(commission_pct) FROM employees;   --只有非NULL记录参加了计算

AVG(COMMISSION_PCT)
-------------------
         .222857143

SQL> SELECT AVG(NVL(commission_pct,0)) FROM employees;   --将NULL记录替换为0后参加计算。

AVG(NVL(COMMISSION_PCT,0))
--------------------------
                .072897196

 

 

 

COUNT(字段)求个数,这个函数不统计空值。

Oracle 19C学习 - 06. 聚合函数

 

找出工资大于10000的员工数量

 SELECT COUNT(commission_pct) FROM employees;

COUNT(COMMISSION_PCT)
---------------------
                   35

SELECT COUNT(*) FROM employees;

  COUNT(*)
----------
       107

 

DISTINCT关键字去除重复

根据员工表统计出部门的数量

SELECT COUNT(DISTINCT(department_id)) FROM employees;

COUNT(DISTINCT(DEPARTMENT_ID))
------------------------------
                            11
上一篇:SQL语句的执行顺序


下一篇:聚合函数