`
danielhjd
  • 浏览: 246275 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Oracle中有关Group by 中avg();sum();min();max();count();的运用整理(Oracle的执行顺序)

阅读更多

表 tabzx:

select * from tabzx

 

表数据:


查询语句:

1:

select count(*),avg(tabzx.salary),sum(tabzx.salary),max(tabzx.salary),min(tabzx.salary)from tabzx

 结果:

 

 

分析:

此时Oracle将表tabzx作为一个单独的组(group)进行函数处理的;

 

Assumption:

SQL表达式编写为:

select tabzx.dept_id, count(*),avg(tabzx.salary),sum(tabzx.salary),max(tabzx.salary),min(tabzx.salary)from tabzx

 结果:



 

总结:

Oracle中,avg();sum();min();max();的返回是都是一条数据,针对同一张表,同样的查询条件,使用可以在同一张表中显示;修改后出错,因为SQL中的条件整张表,所以不能显示任何原来表中的字段。弹出以上提示....

 

2:

select tabzx.dept_name,count(*),avg(tabzx.salary),sum(tabzx.salary),max(tabzx.salary),min(tabzx.salary)from tabzx group by tabzx.dept_name

 结果:



 

分析:

第一个SQL特殊的group by,此处的SQL就算相对特殊的group by tabzx.dept_name,此处可以增加一字段tabzx.dept_name。

 

Assumption:

select tabzx.dept_name,tabzx.dept_id,count(*),avg(tabzx.salary),sum(tabzx.salary),max(tabzx.salary),min(tabzx.salary)from tabzx group by tabzx.dept_name

 结果:



 

总结:

Oracle中,avg();sum();min();max();的返回是都是一条数据,针对同一张表,同样的查询条件,使用可以在同一张表中显示;修改后出错,因为SQL中的条件group by tabzx.dept_name,所以不能显示其它表中的字段。弹出以上提示....

值得注意的是:这里的avg();sum();min();max()的字段都可以任性选择。统计出来的结果,是分组后的统计...

 

3:

select avg(tabzx.dept_id),sum(tabzx.dept_id) ,avg(tabzx.salary),sum(tabzx.salary),max(tabzx.salary)from tabzx group by tabzx.dept_name

 

结果:



 

4:

select tabzx.dept_name,tabzx.job_cat,tabzx.em1_id,avg(tabzx.salary),max(tabzx.salary) from tabzx group by tabzx.dept_name,tabzx.job_cat,tabzx.em1_id having avg(tabzx.salary)>1000;

 

结果:


总结: 

group by _1_ , _2_ , _3_ 中,avg();sum();min();max();count();数据是按照_3_ 分组统计的....也就是说最后一个....

 

原创转载请注明,谢谢...

 

-----------------------------------------------------------------------------------------------------------------------------

 

1.select 列 from 表列表名/视图列表名 where 条件.
2.select 列 from 表列表名/视图列表名 where 条件 group by (列列表) having 条件
3.select 列 from 表列表名/视图列表名 where 条件 group by (列列表) having 条件 order by 列列表
4.select 列 from 表1 join 表2 on 表1.列1=表2.列1...join 表n  on 表n.列1=表(n-1).列1 where 表1.条件 and 表2.条件...表n.条件
执行顺序:

1. 先where 后select
2. 先where 再group 再having 后select
3. 先where 再group 再having 再select 后order
4. 先join  再where 后select

  • 大小: 52.1 KB
  • 大小: 16.7 KB
  • 大小: 10.2 KB
  • 大小: 26.5 KB
  • 大小: 10.5 KB
  • 大小: 27.4 KB
  • 大小: 41.5 KB
分享到:
评论

相关推荐

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

    `GROUP BY`子句通常与聚合函数(如`COUNT`, `SUM`, `AVG`, `MAX`, `MIN`)一起使用,用于计算每个组的汇总信息。例如,以下查询返回每个职位的最高薪水: ```sql SELECT job, MAX(sal) FROM emp GROUP BY job; ...

    《Pro Oracle SQL》Chapter7--7.10GROUP BY Restrictions

    1. GROUP BY基础:GROUP BY子句用于将数据集按照一个或多个列进行分组,以便对每个分组应用聚合函数(如COUNT、SUM、AVG、MAX、MIN等)。这在处理大量数据时,尤其在分析统计方面非常有用。 2. GROUP BY与聚合函数...

    sql-Group-by.rar_oracle

    在Oracle数据库中,GROUP BY语句是SQL查询中的一个关键组成部分,它用于对数据进行分组,以便可以对每个分组应用聚合函数,如COUNT、SUM、AVG、MAX和MIN。这个“sql-Group-by.rar_oracle”压缩包文件包含了一个名为...

    oracle分组函数(ppt文档).ppt

    Oracle 提供了多种分组函数,包括 AVG、SUM、MIN、MAX、COUNT 等。这些函数可以单独使用,也可以组合使用以实现复杂的数据分析。 分组函数的基本语法为: ```sql SELECT column, group_function(column), ... FROM...

    ORACLE学习笔记系列(15)使用扩展的 GROUP BY 子句

    在标准的GROUP BY语句中,我们通常会指定一列或多列,然后应用聚合函数如COUNT(), SUM(), AVG(), MAX(), MIN()等来对每个分组进行计算。然而,Oracle提供了更强大的扩展,让我们可以执行更灵活的数据分析。 1. **...

    oracle group by语句实例测试

    Oracle中的`GROUP BY`语句是SQL查询中的关键部分,用于根据一个或多个列对数据进行分组,以便对每个组执行聚合函数,如`SUM`、`COUNT`、`AVG`等。在本例中,我们看到的`GROUP BY`语句是用来对`test`表中的数据进行...

    ORACLE分析函数

    常见的分析函数包括`SUM()`, `COUNT()`, `AVG()`, `MIN()`, `MAX()`等,它们通常与`OVER`子句一起使用来定义计算范围。 ### SUM() OVER 的不同用法 #### 按部门“连续”求总和 ```sql SUM(sal) OVER (PARTITION BY...

    使用Group by分组统计.rar

    在SQL查询中,`GROUP BY`语句是一个非常重要的部分,它用于对数据进行分组,以便我们可以对每个组执行聚合函数,如`COUNT`, `SUM`, `AVG`, `MAX`, `MIN`等。这个概念在数据分析和数据库管理中至关重要,因为它允许...

    关于sql的group by的分析

    在SQL查询中,`GROUP BY`子句是一个非常重要的部分,它用于对数据进行分组,以便我们可以对每个组执行聚合函数(如SUM、COUNT、AVG、MAX、MIN等)。`GROUP BY`通常与聚合函数一起使用,帮助我们从大量数据中提取有用...

    Oracle教程(二) 基础 教程

    常见的分组函数有`COUNT`、`AVG`、`MAX`、`MIN`和`SUM`。 #### 1. COUNT - `COUNT(*)`: 统计所有记录的数量,即使某些记录的某些字段为空,也计入总数。 - `COUNT(column_name)`: 统计指定列非空值的数量。 #### 2...

    oracle常用sql整理

    1. 分组与聚合函数:GROUP BY和COUNT、SUM、AVG、MAX、MIN等函数用于统计和汇总数据。 2. 分页查询:使用ROWNUM伪列或OFFSET/FETCH语法实现分页显示结果。 3. 子查询优化:使用关联子查询、集合操作或并行查询优化子...

    oracle-非常有用的查询语句整理(一)

    - `COUNT()`, `SUM()`, `AVG()`, `MAX()`, `MIN()`:计算总数、总和、平均值、最大值和最小值。 5. **联接查询**: - `INNER JOIN`: 返回两个表中匹配的行。 - `LEFT JOIN` 或 `LEFT OUTER JOIN`: 包含左表的...

    Oracle公司内部司内

    1. **组函数的概念**:组函数如AVG、COUNT、MAX、MIN、STDDEV和SUM,它们作用于整个列或一组数据,而不是单行。这些函数对于数据汇总和分析非常有用。 2. **组函数类型**: - **AVG**: 计算指定列的平均值。例如,...

    Oracle内置SQL函数-分类整理大全

    在数据分析中,聚合函数如COUNT、SUM、AVG、MAX和MIN经常被用到。COUNT计数,SUM求和,AVG计算平均值,MAX和MIN找到最大值和最小值。GROUP BY和HAVING语句常与这些函数一起使用,用于分组数据并应用条件过滤。 五、...

    Oracle聚合函数及其扩展使用

    SELECT department, AVG(salary) FROM employees GROUP BY GROUPING SETS(department, (department, job)); 这条语句将返回每个部门的薪资平均值,并且返回每个部门和工作岗位的薪资平均值。 Oracle 聚合函数及其...

    Oracle公司内部数据库培训资料Les05chinese.ppt

    在“Oracle公司内部数据库培训资料Les05chinese.ppt”中,主要讲解了关于组函数、数据分组以及相关操作的知识点。这些内容对于理解和使用Oracle数据库进行复杂数据分析至关重要。 首先,组函数是一种在SQL查询中...

    oracle 分组函数

    Oracle数据库系统是世界上最广泛使用的数据库管理系统之一,尤其在企业级应用中占据主导地位。其中,分组函数是Oracle SQL查询中的重要组成部分,用于处理大量数据并进行聚合操作。本篇文章将详细阐述Oracle分组函数...

    oracle实验四.docx

    常用的分组函数包括COUNT(), SUM(), AVG(), MAX(), MIN()等。 **案例一:查询30号所属于的编号的姓名、工资、奖金** 为了获取指定部门编号下的所有员工的姓名、工资及奖金,可以使用以下SQL语句: ```sql SELECT ...

    整理mysql、oracle数据库相关 笔试面试题,主要为了应对面试过程中遇到的sql题目

    2. **聚合函数与GROUP BY**:掌握COUNT、SUM、AVG、MAX和MIN等函数,以及GROUP BY和HAVING的结合使用进行数据分组统计。 3. **排序与分页**:ORDER BY用于结果集排序,LIMIT用于实现分页查询,这对处理大数据量时尤...

Global site tag (gtag.js) - Google Analytics