`
sjk2013
  • 浏览: 2186549 次
文章分类
社区版块
存档分类
最新评论

Oracle中group by用法

 
阅读更多

在select 语句中可以使用group by 子句将行划分成较小的组,然后使用聚组函数返回每一个组的汇总信息,

另外,可以使用having子句 限制返回的结果集。group by 子句可以将查询结果分组,

并返回行的汇总信息Oracle 按照group by 子句中指定的表达式的值分组查询结果。


在带有group by 子句的查询语句中,在select 列表中指定的列要么是group by 子句中指定的列,

要么包含聚组函数

select max(sal),job emp group by job;

(注意max(sal),job的job并非一定要出现,但有意义)


查询语句的select 和group by ,having 子句是聚组函数唯一出现的地方,

在where 子句中不能使用聚组函数。

select deptno,sum(sal) from emp where sal>1200 group by deptno having sum(sal)>8500 order by deptno;


当在gropu by 子句中使用having 子句时,查询结果中只返回满足having条件的组。

在一个sql语句中可以有where子句和having子句。having 与where 子句类似,均用于设置限定条件
where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。
查询每个部门的每种职位的雇员数

select deptno,job,count(*) from emp group by deptno,job

/****************************************************************

特别注意:

在使用group by 时,有一个规则需要遵守,即出现在select列表中的字段,如果没有在组函数中,那么必须出现在group by 子句中。

(select中的字段不可以单独出现,必须出现在group语句中或者在组函数中。)

分享到:
评论

相关推荐

    Oracle中分组查询group by用法规则详解

    Oracle中group by用法 在select 语句中可以使用group by 子句将行划分成较小的组,一旦使用分组后select操作的对象变为各个分组后的数据,使用聚组函数返回的是每一个组的汇总信息。 使用having子句 限制返回的...

    mysql使用GROUP BY分组实现取前N条记录的方法

    本文实例讲述了mysql使用GROUP BY分组实现取前N条记录的方法。分享给大家供大家参考,具体如下: MySQL中GROUP BY分组取前N条记录实现 mysql分组,取记录 GROUP BY之后如何取每组的前两位下面我来讲述mysql中GROUP BY...

    精通Oracle10编程

    oracle基础编程资料

    order_by_、group_by_、having的用法

    order_by_、group_by_、having

    group by的详解

    关于 group by的详解,,group by的用法

    group by的多种用法

    详细介绍了cube、rollup、grouping sets的原理及用法

    ORACLE去除重复数据方法

    使用ORACLE去除重复数据,这在日常数据处理中非常有用。

    Oracle中的SUM用法讲解

    Oracle中的SUM条件查询 1、按照区域编码分组查询区域编码、IPTV_NBR不为空的数量、ACC_NBR不为空的数量、所有用户数量 SELECT AREA_CODE, SUM ( CASE WHEN IPTV_NBR IS NULL or IPTV_NBR = '' THEN 0 ELSE 1 END ),...

    oracle列合并的实现方法

    很多场合我们都会用到...sys_connect_by_path(字段名, 2个字段之间的连接符号),这里的连接符号不要使用逗号,oracle会报错,如果一定要用,可以使用replace替换一下,方法如下 REPLACE(字段名,原字符,’,’)。这个

    group by,having,order by的用法详解

    如果一个查询中使用了分组函数,任何不在分组函数中的列或表达式必须要在group by中,下面为大家简要介绍下group by,having,order by的用法

    oracle经典面试题oracle经典面试题oracle经典面试题

    ORACLE是ORACLE公司的数据产品,支持海量数据存储,支持分布式布暑,支持多用户,跨平台,数据安全完整性控制性能优越,是一个ORDBMS,一般用在大型公司。 2、能不能设计数据库?如何实现数据库导入与导出的更新 ...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    7.1 基本的GROUP BY用法 171 7.2 HAVING子句 174 7.3 GROUP BY的“新”功能 175 7.4 GROUP BY的CUBE扩展 175 7.5 CUBE的实际应用 179 7.6 通过GROUPING()函数排除空值 185 7.7 用GROUPING()来扩展报告 186 ...

    剑破冰山++Oracle开发艺术[1].part10

    本书主要覆盖Oracle开发必备的重要知识点:数据库编程规范、Oracle开发常用工具及使用、MERGE方法、神秘的NULL和讨厌的CHAR、扩展GROUP BY、Oracle自动类型转换、Oracle分析函数、Oracle层次查询、11g R2新特性之...

    Oracle SQL高级编程

    1.5.3 GROUP BY子句 11 1.5.4 HAVING子句 12 1.5.5 SELECT列表 12 1.5.6 ORDERBY子句 13 1.6 INSERT语句 14 1.6.1 单表插入 14 1.6.2 多表插入 15 1.7 UPDATE语句 17 1.8 DELETE语句 20 1.9 MERGE语句 22 1.10 小结 ...

    Oracle11g从入门到精通2

    3.3.4 GROUPBY子句 3.3.5 HAVING子句 3.3.6 多表连接查询 3.3.7 集合操作 3.3.8 子查询 3.4 数据操纵 3.4.1 INSERT语句 3.4.2 UPDATE语句 3.4.3 DELETE语句 3.4.4 TRLINCATE语句 3.5 数据控制 ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    其一、就业面广:全球前100强企业99家都在使用ORACLE相关技术,中国政府机构,大中型企事业单位都能有ORACLE技术的工程师岗位。 其二、技术层次深:如果期望进入IT服务或者产品公司(类似毕博、DELL、IBM等),...

Global site tag (gtag.js) - Google Analytics