[size=medium]Oracle中的分组函数分别有:
MAX()
MIN()
AVG()
COUNT()
SUM()
1. COUNT():
该函数的作用为所查表中的字段不为空的数据总条数;
例如:
SQL> select count(empno) from emp;
COUNT(EMPNO)
------------
14
SQL语句含义:查询所有员工编号列的有效数据;
SQL> select count(distinct(sal)) from emp;
COUNT(DISTINCT(SAL))
--------------------
12
SQL语句含义:查询所有员工编号列的有效数据并且去除重复的数据行;
[b][color=red]注意:组函数忽略空值,意思为当前列中有数据为空时并不算做有效的数据条数,并且适用于SQLServer或MySQL等数据库,并且组函数只返回一个值。[/color][/b]
2. AVG():
该函数是计算该列数据的平均值,必须为数值数据列。
例如:
SQL> select avg(sal) from emp;
AVG(SAL)
----------
2158.92857
SQL语句含义:查询所有员工的平均工资
[color=red][b]但是,这里需要注意如果这样查询算出来的平均值是不准确的,因为组函数忽略空值,所以当有空数据行时,函数不会对其进行统计。[/b][/color]
解决方法如下:
SQL> select avg(nvl(sal,0)) from emp;
AVG(NVL(SAL,0))
---------------
2158.9285714285
这里适用了NVL()函数,可以很好的杜绝组函数的忽略空行。
3. MIN():
该函数的作用为查询该列中最小的数值数据。
例如:
SQL> select min(sal) from emp;
MIN(SAL)
----------
950
SQL语句含义:查询员工表中工资最低的数据。
4. MAX():
该函数的作用为查询该列中最大的数值数据;
例如:
SQL> select max(sal) from emp;
MAX(SAL)
----------
5000
SQL语句含义:查询员工表中工资最少的数据。
5. SUM():
该函数的作用为查询该列数值的总和。
例如:
SQL> select sum(sal) from emp;
SUM(SAL)
----------
30225
SQL语句含义:查询工资列的总和。
SQL> select sum(comm)+sum(sal) from emp;
SUM(COMM)+SUM(SAL)
------------------
32425
SQL语句含义:查询所有员工奖金和工资的总和。
[b]总结:
在Oracle的组函数中所有的函数的查询结果只返回一个值,且一定要注意组函数忽略空行,在实际引用中应该结合实际进行使用。[/b][/size]
MAX()
MIN()
AVG()
COUNT()
SUM()
1. COUNT():
该函数的作用为所查表中的字段不为空的数据总条数;
例如:
SQL> select count(empno) from emp;
COUNT(EMPNO)
------------
14
SQL语句含义:查询所有员工编号列的有效数据;
SQL> select count(distinct(sal)) from emp;
COUNT(DISTINCT(SAL))
--------------------
12
SQL语句含义:查询所有员工编号列的有效数据并且去除重复的数据行;
[b][color=red]注意:组函数忽略空值,意思为当前列中有数据为空时并不算做有效的数据条数,并且适用于SQLServer或MySQL等数据库,并且组函数只返回一个值。[/color][/b]
2. AVG():
该函数是计算该列数据的平均值,必须为数值数据列。
例如:
SQL> select avg(sal) from emp;
AVG(SAL)
----------
2158.92857
SQL语句含义:查询所有员工的平均工资
[color=red][b]但是,这里需要注意如果这样查询算出来的平均值是不准确的,因为组函数忽略空值,所以当有空数据行时,函数不会对其进行统计。[/b][/color]
解决方法如下:
SQL> select avg(nvl(sal,0)) from emp;
AVG(NVL(SAL,0))
---------------
2158.9285714285
这里适用了NVL()函数,可以很好的杜绝组函数的忽略空行。
3. MIN():
该函数的作用为查询该列中最小的数值数据。
例如:
SQL> select min(sal) from emp;
MIN(SAL)
----------
950
SQL语句含义:查询员工表中工资最低的数据。
4. MAX():
该函数的作用为查询该列中最大的数值数据;
例如:
SQL> select max(sal) from emp;
MAX(SAL)
----------
5000
SQL语句含义:查询员工表中工资最少的数据。
5. SUM():
该函数的作用为查询该列数值的总和。
例如:
SQL> select sum(sal) from emp;
SUM(SAL)
----------
30225
SQL语句含义:查询工资列的总和。
SQL> select sum(comm)+sum(sal) from emp;
SUM(COMM)+SUM(SAL)
------------------
32425
SQL语句含义:查询所有员工奖金和工资的总和。
[b]总结:
在Oracle的组函数中所有的函数的查询结果只返回一个值,且一定要注意组函数忽略空行,在实际引用中应该结合实际进行使用。[/b][/size]