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 Instant Client是Oracle公司提供的一款轻量级的数据库连接工具,它允许用户在不安装完整Oracle数据库服务器的情况下,与Oracle数据库进行交互。本压缩包"oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_...
本篇文章将详细阐述Oracle分组函数的概念、功能以及常用分组函数的使用方法。 一、分组函数概述 分组函数主要作用于一组数据上,而不是单个记录,它们用于对数据进行汇总,如计算总和、平均值、最大值、最小值等。...
Oracle 函数是 SQL 语言中的一种强大特征,使用函数可以对数据执行计算、改变特定的数据项、生成数据行分组输出、格式化日期和数值的显示形式、对列数据类型进行转换等。函数可以接收多个参数,但通常只返回一个值...
Oracle函数介绍 Oracle函数是Oracle数据库管理系统中提供的一种功能强大且灵活的函数工具,用于对数据进行处理和操作。本文将对Oracle函数进行详细的介绍,包括数字格式元素、日期格式元素、字符格式元素等方面的...
除了上述基础操作,Oracle数据库还提供了PL/SQL编程语言,它允许编写存储过程、函数和触发器,以实现更复杂的业务逻辑。另外,Oracle还支持事务处理,保证了数据的一致性和完整性,以及备份恢复、性能优化、分区等...
此外,还可能涉及到了更高级的查询技巧,如联接(JOIN)、子查询、分组(GROUP BY)、排序(ORDER BY)以及窗口函数(OVER())等。 另一方面,“www.pudn.com.txt”这个文件名看起来像是来源于一个网站地址,可能是...
这种方法更灵活,可以实现复杂的分组和排序,但对性能的影响可能稍大。 总的来说,Oracle-C#分页控件的实现涉及数据库连接、SQL查询、数据绑定等多个环节。理解并掌握这些知识点,你就能在Winform应用中构建出高效...
本资料“oracle-funcation.rar_oracle”聚焦于Oracle数据库中的常用功能函数,旨在帮助用户理解和掌握这些函数的用法,从而更高效地进行数据管理和查询。 在Oracle中,函数是SQL语言的重要组成部分,它们可以处理和...
- 对结果集中的数据进行分组,通常与聚合函数一起使用。 - **HAVING子句:** - 类似于WHERE子句,但用于过滤GROUP BY的结果。 - **子句的综合应用:** - 综合使用各种子句来实现更复杂的数据检索需求。 #### 七...
Oracle数据库是世界上最广泛使用的数据库系统之一,其强大的功能在很大程度上归功于其丰富的内置函数。本篇文章将详细探讨在"oracle函数大全-数字-字符-日期-聚合函数"这个主题中涵盖的关键知识点。 首先,我们来看...
本文将深入探讨“Oracle-1.zip”压缩包中包含的两个关键文件:“OracleLearn-1.sql”和“oracle函数大全.chm”,它们是学习和提升Oracle SQL技能的重要资源。 首先,“OracleLearn-1.sql”文件是一组用于学习和实践...
oracle笔记分组函数,涉及组函数案例,在使用组函数的过程中注意事项,有具体的案例说明!
本资料“Oracle SQL function.ppt”将深入探讨Oracle SQL中的函数及其应用。 1. **SQL基础** - SQL是用于处理关系数据库的标准语言,包括查询、插入、更新和删除数据。 - 在Oracle SQL中,函数是用来处理或转换...
此外,可能还会涉及到分组(GROUP BY)、聚合函数(如COUNT, SUM, AVG, MAX, MIN)和窗口函数,它们在处理汇总数据和计算排名时非常有用。虽然这些未在标题和描述中明确提及,但它们是进行高效查询不可或缺的一部分...
3. 分组和聚合函数:GROUP BY和COUNT(), SUM(), AVG(), MAX(), MIN()等,用于对数据进行统计分析。 4. 聚合函数与GROUP BY结合的子查询:在分组后执行进一步的筛选或计算。 5. HAVING子句:用于过滤GROUP BY后的结果...
- **Grouping and Partitioning**(分组与分区):讲解了如何使用GROUP BY子句进行数据分组,以及如何使用分区函数对数据进行分区处理。 - **Indexes and Constraints**(索引与约束):介绍了索引的作用及创建方法...
本博客简单介绍一下oracle分组函数之rollup的用法,rollup函数常用于分组统计,也是属于oracle分析函数的一种 环境准备 create table dept as select * from scott.dept; create table emp as select * from ...
为了并行化一个表函数,程序员需要指定一个键来重新分区输入数据,使得数据可以根据这个键进行分组和处理。 ##### 2.2 并行化原理 在Oracle数据库中,并行化的关键在于如何有效地将数据分发给多个处理单元。这主要...
Oracle SQL是数据库管理和查询的重要工具,它提供了丰富的内置函数,帮助用户进行数据处理、分析和检索。本压缩包“Oracle-SQL.zip_oracle”包含了一份名为“Oracle SQL.ppt”的PPT文件,该文件深入浅出地介绍了...
- PL/SQL是Oracle提供的过程化语言,用于编写存储过程、函数、触发器和游标。 - 循环、条件语句(IF-THEN-ELSIF-ELSE)、异常处理等控制结构。 - 游标:用于逐行处理查询结果。 6. 安全性与权限: - 用户和角色...