`

oracle-----分组函数

阅读更多

group by 有时候就是为了使用下面的分组函数
count() avg()  max(); // 一般针对于数字的应用上
min();  sum()

如果程序中使用了分组函数,则有两种可以使用的情况:
1。程序中存在了group by ,并制定了分组条件,这样可以将分组条件一起查询出来
2。如果不使用group by的话,则只能单独使用分组函数 

所以: select deptno,count(empno) from emp; //错误:不是单组分组函数
 改:select deptno,count(empno) from emp group by deptno;
 select deptno,ename,count(empno)from emp group by deptno; //错误:不是一个group by表达式
 
 总结就是: group by 和组函数都将赋予 字段组的概念,那么在这种情况下由group by 修饰的
 字段和由组函数修饰的字段都是组字段,而前面的不是组字段,当然会出现错误
 
 
 where group by having order by  -----wgho ---我走好
 
  要求显示出平均工资大于2000的部门编号和平均工资。
 select deptno,AVG(sal)
 from emp
 where AVG(sal) > 2000
 group by deptno ;    //第三行出现错误: 此处不允许使用分组函数
 分组函数只能在分组中使用,不允许在where语句之中出现,我们只能使用分组过滤
 
 select deptno,AVG(sal)
 from emp
 group by deptno HAVING AVG(sal) > 2000; 
 
 显示非销售人员工作名称以及从事同一工作雇员的月工资的总和,
 并且要满足从事同一工作的雇员的月工资合计
 大于$5000,输出结果按月工资的合计升序排列
  		emp{empno,ename,job,mgr(雇员的领导的编号),hiredate,sal,comm,deptno}
       dept{deptno,dname,loc}
       salgrade{grade,losal,hisal}
       bonus{ename,job,sal,comm}
 这么长的语句:分解
 显示非销售人员工作名称: 
 select job from emp where job <>'SALESMAN'
 。。。以及从事同一工作雇员的月工资的总和,
 select job,SUM(sal) from emp 
 where job <>'SALESMAN'
 group by job
 。。。并且要满足从事同一工作的雇员的月工资合计大于$5000
 select job,SUM(sal) from emp 
 where job <>'SALESMAN'
 group by job HAVING SUM(sal) > 5000
。。。输出结果按月工资的合计升序排列
 select job,SUM(sal) su from emp 
 where job <>'SALESMAN'
 group by job HAVING SUM(sal) > 5000
 order by su; //使用别名不叫分组函数,可以使用
 
 分组函数可以嵌套使用,但是在组函数嵌套使用的时候不能再出现分组条件的查询语句
 求出平均工资最高的部门工资
 select deptno,MAX(AVG(sal))
 from emp
 group by deptno; //错误,不是单组分组函数,理解:查询的东西一个是一层组函数,一个是两层组函数,显然他们不是同一级别,当然不能一起使用
 
 改成:select MAX(AVG(sal))
 from emp
 group by deptno;  
分享到:
评论

相关推荐

    oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64

    Oracle Instant Client是Oracle公司提供的一款轻量级的数据库连接工具,它允许用户在不安装完整Oracle数据库服务器的情况下,与Oracle数据库进行交互。本压缩包"oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_...

    oracle 分组函数

    本篇文章将详细阐述Oracle分组函数的概念、功能以及常用分组函数的使用方法。 一、分组函数概述 分组函数主要作用于一组数据上,而不是单个记录,它们用于对数据进行汇总,如计算总和、平均值、最大值、最小值等。...

    oracle-函数.pptx

    Oracle 函数是 SQL 语言中的一种强大特征,使用函数可以对数据执行计算、改变特定的数据项、生成数据行分组输出、格式化日期和数值的显示形式、对列数据类型进行转换等。函数可以接收多个参数,但通常只返回一个值...

    Oracle-函数介绍.pptx

    Oracle函数介绍 Oracle函数是Oracle数据库管理系统中提供的一种功能强大且灵活的函数工具,用于对数据进行处理和操作。本文将对Oracle函数进行详细的介绍,包括数字格式元素、日期格式元素、字符格式元素等方面的...

    ORACLE-STUD-DATA.rar_stud

    除了上述基础操作,Oracle数据库还提供了PL/SQL编程语言,它允许编写存储过程、函数和触发器,以实现更复杂的业务逻辑。另外,Oracle还支持事务处理,保证了数据的一致性和完整性,以及备份恢复、性能优化、分区等...

    oracle-sql.rar_oracle

    此外,还可能涉及到了更高级的查询技巧,如联接(JOIN)、子查询、分组(GROUP BY)、排序(ORDER BY)以及窗口函数(OVER())等。 另一方面,“www.pudn.com.txt”这个文件名看起来像是来源于一个网站地址,可能是...

    Oracle-C#分页控件

    这种方法更灵活,可以实现复杂的分组和排序,但对性能的影响可能稍大。 总的来说,Oracle-C#分页控件的实现涉及数据库连接、SQL查询、数据绑定等多个环节。理解并掌握这些知识点,你就能在Winform应用中构建出高效...

    oracle-funcation.rar_oracle

    本资料“oracle-funcation.rar_oracle”聚焦于Oracle数据库中的常用功能函数,旨在帮助用户理解和掌握这些函数的用法,从而更高效地进行数据管理和查询。 在Oracle中,函数是SQL语言的重要组成部分,它们可以处理和...

    Oracle --PlSql教程

    - 对结果集中的数据进行分组,通常与聚合函数一起使用。 - **HAVING子句:** - 类似于WHERE子句,但用于过滤GROUP BY的结果。 - **子句的综合应用:** - 综合使用各种子句来实现更复杂的数据检索需求。 #### 七...

    oracle函数大全-数字-字符-日期-聚合函数

    Oracle数据库是世界上最广泛使用的数据库系统之一,其强大的功能在很大程度上归功于其丰富的内置函数。本篇文章将详细探讨在"oracle函数大全-数字-字符-日期-聚合函数"这个主题中涵盖的关键知识点。 首先,我们来看...

    Oracle-1.zip

    本文将深入探讨“Oracle-1.zip”压缩包中包含的两个关键文件:“OracleLearn-1.sql”和“oracle函数大全.chm”,它们是学习和提升Oracle SQL技能的重要资源。 首先,“OracleLearn-1.sql”文件是一组用于学习和实践...

    oracle笔记分组函数

    oracle笔记分组函数,涉及组函数案例,在使用组函数的过程中注意事项,有具体的案例说明!

    Oracle-SQL-function.rar_oracle_oracle ppt

    本资料“Oracle SQL function.ppt”将深入探讨Oracle SQL中的函数及其应用。 1. **SQL基础** - SQL是用于处理关系数据库的标准语言,包括查询、插入、更新和删除数据。 - 在Oracle SQL中,函数是用来处理或转换...

    ORACLE-select-query.rar_oracle_多表查询

    此外,可能还会涉及到分组(GROUP BY)、聚合函数(如COUNT, SUM, AVG, MAX, MIN)和窗口函数,它们在处理汇总数据和计算排名时非常有用。虽然这些未在标题和描述中明确提及,但它们是进行高效查询不可或缺的一部分...

    oracle-----oracle多表查询

    3. 分组和聚合函数:GROUP BY和COUNT(), SUM(), AVG(), MAX(), MIN()等,用于对数据进行统计分析。 4. 聚合函数与GROUP BY结合的子查询:在分组后执行进一步的筛选或计算。 5. HAVING子句:用于过滤GROUP BY后的结果...

    oracle-sql-the-essential-reference

    - **Grouping and Partitioning**(分组与分区):讲解了如何使用GROUP BY子句进行数据分组,以及如何使用分区函数对数据进行分区处理。 - **Indexes and Constraints**(索引与约束):介绍了索引的作用及创建方法...

    Oracle分组函数之ROLLUP的基本用法

    本博客简单介绍一下oracle分组函数之rollup的用法,rollup函数常用于分组统计,也是属于oracle分析函数的一种 环境准备 create table dept as select * from scott.dept; create table emp as select * from ...

    Oracle - In Database Map-Reduce

    为了并行化一个表函数,程序员需要指定一个键来重新分区输入数据,使得数据可以根据这个键进行分组和处理。 ##### 2.2 并行化原理 在Oracle数据库中,并行化的关键在于如何有效地将数据分发给多个处理单元。这主要...

    Oracle-SQL.zip_oracle

    Oracle SQL是数据库管理和查询的重要工具,它提供了丰富的内置函数,帮助用户进行数据处理、分析和检索。本压缩包“Oracle-SQL.zip_oracle”包含了一份名为“Oracle SQL.ppt”的PPT文件,该文件深入浅出地介绍了...

    oracle-sql资料必备

    - PL/SQL是Oracle提供的过程化语言,用于编写存储过程、函数、触发器和游标。 - 循环、条件语句(IF-THEN-ELSIF-ELSE)、异常处理等控制结构。 - 游标:用于逐行处理查询结果。 6. 安全性与权限: - 用户和角色...

Global site tag (gtag.js) - Google Analytics