在介绍了Oracle中的基本数据类型及相应的处理函数后,本章将介绍Oracle中较为复杂的数据处理。
接下来,本文将介绍:
1、利用聚合函数来统计数据;
2、常用技巧;
3、oracle中的基本运算;
4、oracle特殊判式;
5、oracle中的分析与窗口函数
1. 利用聚合函数统计数据
前面几篇博客介绍的,都有一个共同的特点:均针对单一数据。
而聚合函数则是针对多个数据获得统计结果。使用聚合函数的场景大多为表中的数据,接下来的所有示例均基于表employees,其数据结构及内容如下所示。
SQL>select * from employees
表employees中存储了员工的基本信息,有员工ID、员工姓名、员工职位、员工年龄、员工家庭住址。
1.1 求最大值----max()函数
max()函数可以用于获得一组数据中的最大值,这里的“一组数据”通常为表中某列的所有值,max()函数可以应用的数据类型包括数值型和字符型。
(1)max()函数应用于数值型
max()函数应用于数值型时,是按照数值的大小顺序来获得最大值。
例子:为了获得员工的最大年龄可以利用如下所示的SQL语句
SQL>select max(employee_age) max_age from employees;
------
37
from employees提供了表employees中的所有记录作为数据源;max(employee_age)中的employee_age为数据列,该列的所有数据组成了max()函数的参数,max()函数则统计该组数据中的最大值。
max()函数的返回值是一个统计值,与数据表中的元数据并没有一一对应的关系。例如:表employees中可能存储了多个37岁的员工信息,而max()函数的返回值只是一个统计值。
(2)max()函数应用于字符型
max()函数不仅可以应用于数值型,还可以应用于字符型。当应用于字符型时,oracle会依照字母表由前到后的顺序进行排序。
例子:在表employees中,列employee_name为字符型,可以利用max()函数来获得去最大值。
SQL>select max(employee_name ) max_name from employees;
--------
钟小平
(3)max()函数应用于日期型
日期型的实质也是数值型,因此,max()函数应用于日期型与数值型具有完全相同的效果-----获得最晚日期。
1.2 求最小值-----min()函数
与max()函数相反,min()函数可以获得最小值。min()函数同样可应用于数值型、字符型和日期型。
1.3 求平均值-----avg()函数
avg()函数用于获得一组数据的平均值,该函数只能应用于数值型。
avg()函数的返回值是一个number型。
1.4求和----sum()函数
sum()函数用于获得一组数据的和。该函数同样只能应用于数值型。
例子:为了获得employees中所有员工年龄之和,可以利用如下SQL语句。
SQL.>select sum(employee_age ) sum_age from employees;
1.5 统计记录数-----count()函数
count()函数用于统计记录数目。该函