`
lpf8024531
  • 浏览: 5929 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

oracle分组函数、临时表

阅读更多
一.分组函数
max min avg count sum
1,整个结果集是一个组
   1) 求部门30 的最高工资,最低工资,平均工资,总人数,有工作的人数,工种数量及工资总和
     select max(ename),max(sal),
     min(ename),min(sal),
     avg(sal),
     count(*) ,count(job),count(distinct(job)) ,
     sum(sal) from emp where deptno=30;
2, 带group by 和 having 的分组
   1)按部门分组求最高工资,最低工资,总人数,有工作的人数,工种数量及工资总和
    select deptno, max(ename),max(sal),
    min(ename),min(sal),
    avg(sal),
    count(*) ,count(job),count(distinct(job)) ,
    sum(sal) from emp group by deptno;
  
   2)部门30的最高工资,最低工资,总人数,有工作的人数,工种数量及工资总和
    select deptno, max(ename),max(sal),
    min(ename),min(sal),
    avg(sal),
    count(*) ,count(job),count(distinct(job)) ,
    sum(sal) from emp group by deptno having deptno=30;
  
3, stddev 返回一组值的标准偏差
    select deptno,stddev(sal) from emp group by deptno;
    variance 返回一组值的方差差
    select deptno,variance(sal) from emp group by deptno;

4, 带有rollup和cube操作符的Group By
    rollup 按分组的第一个列进行统计和最后的小计
    cube 按分组的所有列的进行统计和最后的小计
    select deptno,job ,sum(sal) from emp group by deptno,job;
    select deptno,job ,sum(sal) from emp group by rollup(deptno,job);
    cube 产生组内所有列的统计和最后的小计
    select deptno,job ,sum(sal) from emp group by cube(deptno,job);

二、临时表
   只在会话期间或在事务处理期间存在的表.
   临时表在插入数据时,动态分配空间
   create global temporary table temp_dept
   (dno number,
   dname varchar2(10))
   on commit delete rows;
   insert into temp_dept values(10,'ABC');
   commit;
   select * from temp_dept; --无数据显示,数据自动清除
   on commit preserve rows:在会话期间表一直可以存在(保留数据)
   on commit delete rows:事务结束清除数据(在事务结束时自动删除表的数据)
分享到:
评论

相关推荐

    oracle 分析函数学习笔记

    在描述中提到的场景中,有几种不同的方法可以实现数据统计,包括通过程序处理、使用临时表和包、标准SQL的UNION以及Oracle特有的分析函数。每种方法都有其优缺点。例如,程序处理方法与数据库无关,但增加了开发工作...

    oracle 用户 表空间 以及几个工作中用到的特殊函数

    这里创建了一个名为`jack`的用户,密码为"jack",默认表空间为"USERS",临时表空间为"TEMP"。 2. **权限授予**: `GRANT`语句用于赋予用户特定权限。如: ``` grant connect to jack ; grant dba to jack ; `...

    oracle分析函数.doc

    - 分析函数允许你在结果集内部进行计算,而无需创建临时表或子查询,这提高了查询效率。 2. **分析函数OVER解析** - OVER子句是分析函数的关键部分,它定义了函数的操作范围。你可以指定窗口(PARTITION BY)、...

    oracle函数介绍(6) 著名函数之分析函数.doc

    以上这些分析函数极大地增强了Oracle SQL的功能,允许用户在单个查询中处理复杂的分析任务,无需多次查询或临时表。通过巧妙地组合这些函数,我们可以实现诸如移动平均、累计和、窗口排名等高级分析操作,从而更高效...

    深入浅出oracle分析函数(全)

    在PLSQL编程中,分析函数的应用可以提高代码的效率和可读性,同时减少临时表和子查询的使用。理解并熟练掌握这些函数是成为高效Oracle数据库开发者的关键。 8. **分析函数简述**: 对分析函数的全面理解和应用...

    Oracle 分组聚合查询 - 开源中国社区1

    Oracle 分组聚合查询是数据库管理中一种常用的技术,它用于对数据进行汇总并按照特定的字段(或称为分组键)进行分组。在Oracle数据库系统中,这种查询通常涉及`GROUP BY`语句和聚合函数,如`SUM`, `COUNT`, `AVG`, ...

    oracle分析函数

    与传统的SQL查询不同,分析函数允许在单个查询中进行复杂的分析计算,如分组、排序、排名以及计算累积值等,而无需使用子查询或临时表。 1. **分析函数简介**: 分析函数在OLTP系统中也十分有用,因为它们能够高效...

    oracle本表去重的语句优化

    - 首先创建一个临时表,插入`bao_mobile_temp`表中唯一不同的`mobile`值。 - 删除原表。 - 将临时表重命名为原表名,完成去重操作。 示例代码如下: ```sql CREATE TABLE temptab AS SELECT DISTINCT mobile ...

    oracle 查询重复数据

    可以考虑创建索引、使用更高效的分组策略或临时表来提升效率。 - **数据清洗**: 发现重复数据后,下一步通常是进行数据清洗,包括合并重复记录、删除多余条目或修正数据录入错误。 - **预防机制**: 在数据录入阶段...

    Oracle 19c OCP 082 试题带翻译-2022.5.2更新

    这是正确的,如果视图是可更新的(例如,没有聚合函数或分组),则可以更新,且更新将影响基表。 D. WITH CHECK选项防止某些行通过视图更新或插入到基础表中。这是正确的,WITH CHECK用来确保更新或插入的操作符合...

    Oracle数据库学习 06Days

    - 表空间管理:创建和管理表空间,包括数据文件、临时表空间和重做日志文件。 10. **高可用性与灾难恢复** - Standby数据库:了解物理和逻辑备库,以及如何实现数据保护。 - Data Guard:Oracle的高可用性和灾难...

    Oracle 存储过程分页

    虽然ROWNUM和ROW_NUMBER()在大多数情况下都能提供良好的性能,但在处理大表或复杂查询时,可能需要优化索引、避免全表扫描,以及利用物化视图或临时表来提升性能。 总结,Oracle 存储过程中的分页实现有很多种方式...

    oracle行列转换实例

    假设我们有一个包含用户编号、电话号码、产品名称、所在营业区和业务名称的临时表,其中每个用户可能有多个业务。传统的 SQL 语句处理这种情况可能会很复杂,甚至需要存储过程。但通过 Oracle 的分析函数,我们可以...

    oraclesql面试题

    题目中提到了全局临时表的创建和使用,这是一种在会话期间可见但在会话结束时会被自动删除的特殊类型表。可以通过`ON COMMIT DELETE ROWS`或`ON COMMIT PRESERVE ROWS`选项控制其行为。全局临时表非常适合存储临时...

    ORACLE-select-query.rar_oracle_多表查询

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

    oracle查询语句

    Oracle的全局临时表只对当前会话可见,且在会话结束时自动删除。下面是如何创建并填充临时表的示例: ```sql CREATE GLOBAL TEMPORARY TABLE temp_table ( column1 datatype1, column2 datatype2, ... columnN ...

    oracle sql 高级编程

    窗口函数是Oracle SQL的一个强大特性,它们允许在结果集的行之间进行计算,而无需创建临时表或使用自连接。例如,RANK()、ROW_NUMBER()、DENSE_RANK()和LEAD/LAG函数可以帮助处理排名、行间差异和预览/滞后值等任务...

    Oracle&SQL手册

    9. **子查询与临时表**:临时存储查询结果,用于复杂查询的中间步骤。 10. **视图**:创建虚拟表,简化复杂查询,保护数据和提高性能。 Oracle 和 SQL 手册通常会包含这些主题的详细解释、示例和最佳实践,帮助...

Global site tag (gtag.js) - Google Analytics