Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 分组查询详解

一,什么是分组函数分组函数作用于一组数据,并对一组数据返回一个值二,分组函数类型Avg ,count,max,min,stddev(标准方差),sum。
函数名称函数描述
Count返回找到的记录数
Min返回一个数字列或计算列的最小值
Max返回一个数字列或计算列的最大值
Sum返回一个数字列或计算列总和
avg返回一个数字列或计算列的平均值
 三,分组函数的语法  SELECT   [column,] group_function(column), ... FROM                table [WHERE  condition][GROUP BY      column][ORDER BY      column];//返回总记录数   //* 代表的是:一条记录SQL> select count(*) from emp;//返回comm不为空的总记录数SQL> select count(comm) from emp;//COUNT(DISTINCT expr) 返回 expr非空且不重复的记录总数 SQL> select count(distinct(sal)) from emp;注意:组函数忽略空值//返回所有员工的平均工资   SQL> select avg(nvl(sal,0)) from emp;注意:NVL函数使分组函数无法忽略空值//返回员工编号最小值   SQL> select min(empno) from emp;//返回员工工资最大值SQL> select max(sal) from emp;//求该月本公司发出的工资总额SQL> select sum(comm)+sum(sal) from emp;SQL> select sum(nvl(sal,0)+nvl(comm,0)) from emp;Group by如果在查询的过程中需要按某一列的值进行分组,以统计该组内数据的信息时,就要使用group by子句。不管select是否使用了where子句都可以使用group by子句。注意:group by子句一定要与分组函数结合使用,否则没有意义。//求出每个部门的员工人数SQL> select deptno,count(*) as "人数" from emp group by deptno;//求出每个部门的员工的平均工资SQL> select deptno,avg(nvl(sal,0)) from emp group by deptno;//注意:group by 子句中的列不必包含在SELECT 列表中SQL> select avg(nvl(sal,0)) from emp group by deptno; //求出某个部门中相同职位的员工人数   group by 后可以跟多个分组的字段SQL> select deptno,job,count(*) from emp group by deptno,job order by deptno;Having 子句    HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 子句和 SELECT 语句交互的方式类似。WHERE 子句搜索条件在进行分组操作之前应用;而 HAVING 搜索条件在进行分组操作之后应用。HAVING 语法与 WHERE 语法类似,但 HAVING 可以包含聚合函数。HAVING 子句可以引用选择列表中出现的任意项。备注:having子句通常与group by子句结合使用 语法:SELECT     column, group_function FROM                table [WHERE   condition][GROUP BY      group_by_expression][HAVING  group_condition][ORDER BY       column]; //查询部门的员工人数大于五部门编号SQL> select deptno,count(*) from emp group by deptno having count(*)>5;Oracle多表查询详解Oracle子查询详解相关资讯      oracle数据库教程 
  • Oracle raw数据类型介绍  (01/29/2013 10:05:53)
  • 监听器注册与ORA-12514 错误分析  (11/13/2012 14:30:08)
  • Oracle SQL的cursor理解  (11/13/2012 14:16:17)
  • Oracle 如何强制刷新Buffer Cache  (01/29/2013 10:02:46)
  • dblink致Oracle库的SCN变成两库的  (11/13/2012 14:24:41)
  • Linux操作系统下完全删除Oracle数  (11/13/2012 08:25:52)
本文评论 查看全部评论 (0)
表情: 姓名: 字数

版权所有©石家庄振强科技有限公司2024 冀ICP备08103738号-5 网站地图