日期:2014-05-16 浏览次数:20416 次
上一次笔记学习了,多表查询,本次笔记来学习Oracle中的分组函数。
首先来了解一下什么是组函数:
组函数:作用于一组数据,并对一组数据返回一个值。
SQl中组函数的类型:
COUNT():求出全部的记录数。
MAX():求出一组数据中的最大值。
MIN():求出最小值。
AVG():求平均值。
SUM():求和。
数值型数据可以使用AVG()和SUM()函数;MIN()和MAX()函数适用于任意数据类型,但是一般应用在数值类型上。
基本语法:
SELECT [column], group_function(column), ...
FROM table
[WHERE condition]
例:使用count()函数,求出雇员表中记录总数。
SQL> select count(*) from emp ;
COUNT(*)
----------
14
SQL> select count(deptno ) from emp ;
COUNT(EMPNO)
------------
14count()函数括号中,可以使用*,*表示返回所有记录的总数。可以使用列名,列名表示返回该列记录中不为空的记录总数。在上面的结果中,查询部门号,在结果中显示有14条数据,在部门表中只有4条数据,那么返回的查询结果中存在重复的情况。可以使用distinct 关键字,来去重。即:select count(distinct deptno ) from emp ; , 返回的结果为3。
例:使用MAX 、MIN,求雇员表中,员工的最高工资和最低工资。
SQL> select max(sal) , min(sal ) from emp ;
MAX(SAL) MIN(SAL)
---------- ----------
5000 800
例:使用AVG、SUM函数,求雇员表中,30号部门的工资平均值和工资总和。
SQL> select sum(sal) ,avg(sal) from emp where deptno = 30 ;
SUM(SAL) AVG(SAL)
---------- ----------
9400 1566.66666
使用group by 字句,来为数据分组。
基本语法: