Oracle分组函数简析与案例

[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]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值