zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

oracle中基本的分组函数

Oracle 函数 基本 分组
2023-09-11 14:20:19 时间

分组函数:分组函数作用于一组数据,并对一组数据返回一个值。

组函数类型:AVG,COUNT,MAX,MIN,STDDEV,SUM

1.可以对数值型数据使用AVG 和 SUM 函数。

SELECT AVG(salary), MAX(salary),
              MIN(salary), SUM(salary)
FROM   employees
WHERE  job_id LIKE '%REP%';

2.可以对任意数据类型的数据使用 MIN 和 MAX 函数。

SELECT MIN(hire_date), MAX(hire_date)
FROM	  employees;

3.COUNT(*) 返回表中记录总数

SELECT COUNT(*)
FROM	  employees
WHERE  department_id = 50;

4.COUNT(expr) 返回 expr不为空的记录总数。

SELECT COUNT(commission_pct)
FROM   employees
WHERE  department_id = 80;

5.COUNT(DISTINCTexpr) 返回 expr非空且不重复的记录总数

SELECT COUNT(DISTINCT department_id)
FROM   employees;

6.组函数忽略空值

SELECT AVG(commission_pct)
FROM   employees;

7.NVL函数使分组函数无法忽略空值

SELECT AVG(NVL(commission_pct, 0))
FROM   employees;

8.group by

在SELECT 列表中所有未包含在组函数中的列都应该包含在 GROUP BY 子句中。

②包含在 GROUP BY 子句中的列不必包含在SELECT 列表中

③多个列分组

SELECT   department_id dept_id, job_id, SUM(salary)
FROM     employees
GROUP BY department_id, job_id ;

9.Having子句

SELECT   department_id, MAX(salary)
FROM     employees
GROUP BY department_id
HAVING   MAX(salary)>10000 ;

10.嵌套函数

SELECT   MAX(AVG(salary))
FROM     employees
GROUP BY department_id;
AVG:求平均值
COUNT:统计查询结果个数
MAX:求最大值
MIN:求最小值
STDDEV:求标准差
SUM:求和