`
mamaoyuan625
  • 浏览: 177194 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Oracle 中分区和分组的区别

阅读更多

分区:

如:需要对部门的员工收入 ,体育中的成绩进行排名的时候,要进行分部门,分栏目,分项目排名,这个时候要按分区计算,当然主要使用解析函数,----------------------->返回多行

一:解析函数() over(partition by 字段 order by 字段)
案例:

 

 

_        各种新闻(娱乐,体育,8挂,军事)的单击率在前3名记录

_        每种图片(计算机类,考试类,文学),销售量在前10名记录

_        每个班的前3名

 

 

二:分组: ---------------------->返回一行

求每个部门的max  sum  min  count  avg 时 可用group by

 

 

分区排名实例:

 

--1:脚本

 create table T_NEWS ( ID NUMBER, N_TYPE VARCHAR2(20), N_TITLE VARCHAR2(30), N_COUNT NUMBER ) ; insert into T_NEWS (ID, N_TYPE, N_TITLE, N_COUNT) values (1, 'IT', '爱it1', 100); insert into T_NEWS (ID, N_TYPE, N_TITLE, N_COUNT) values (2, '体育', '爱体育1', 10); insert into T_NEWS (ID, N_TYPE, N_TITLE, N_COUNT) values (3, '体育', '爱体育2', 30); insert into T_NEWS (ID, N_TYPE, N_TITLE, N_COUNT) values (4, 'IT', '爱it2', 300); insert into T_NEWS (ID, N_TYPE, N_TITLE, N_COUNT) values (5, 'IT', '爱it3', 200); insert into T_NEWS (ID, N_TYPE, N_TITLE, N_COUNT) values (6, '体育', '爱体育3', 20); insert into T_NEWS (ID, N_TYPE, N_TITLE, N_COUNT) values (7, '体育', '爱体育4', 60); commit;


 

 

 

select * from t_news;


要求:根据显示各栏目(N_TYPE)点击率(N_COUNT)在前2名的记录

即要求显示:

 

 查询语句为:
select a.*
from (
  select t.*,
  rank() over (partition by t.n_type order by t.n_count desc) news_rank
  from t_news t
) a
where news_rank<=2


知识点:Oracle解析函数
说明:
·order by t.n_count desc:点击率排序
·rank:所排的名次
·partition:根据什么字段分区,不同区相互之间不互相影响。

说明:
partition(分区)与group by(分组)的区别是:前者仅仅是将数据按指定字段分开,分开后各区仍有多少记录;后者是根据指定字段进行分组,分组以后各组记录只能返回一条记录(即要进行聚合计算)。

类似的任务还有:统计各部门收入最高的前5条记录等。这类任务如果没有分区的技术,很难办到。所以再次体会到Oracle的强大之处。

 

不分区排名实例:

 操作emp表

 

SELECT  e.*,row_number() over(ORDER BY e.sal DESC) x
FROM emp e ;

SELECT * FROM (
  SELECT  t.*,row_number() over(ORDER BY t.sal DESC) r
  FROM emp t
  ORDER BY t.sal DESC
) t
WHERE r BETWEEN 1 AND 3

 

 


 

分享到:
评论

相关推荐

    oracle创建分区表.pdf

    三、Oracle分区表的创建示例 本篇文档通过一个留言版应用的案例来说明分区表的创建和使用。案例中提到了创建独立表空间、备份旧数据、创建分区表、导入数据和分区表扩容的步骤。 1. 创建独立的表空间:这是创建分区...

    Oracle数据库使用分组函数来对数据进行聚集

    Oracle数据库使用分组函数来对数据进行聚集

    Oracle 执行计划、表分区

    - **执行计划中的操作符**:常见的操作符包括全表扫描、索引扫描、连接操作、排序和分组等,每个都有其特定的作用和性能影响。 2. **表分区** - **什么是表分区**:表分区是Oracle数据库中的一种高级特性,将大表...

    Oracle中分组后拼接分组字符串[文].pdf

    Oracle 中分组后拼接分组字符串 在 Oracle 中,分组后拼接分组字符串是一种常见的操作,用于将分组后的多条记录的某字段进行拼接。下面我们来详细介绍如何实现这种操作。 首先,创建一个测试表 `test`,该表包含三...

    unix中oracle分区表导出

    Oracle分区表是一种优化数据管理的方法,它将大型表分成较小、更易管理和查询的部分,以提高性能和可维护性。本文将深入探讨Unix中Oracle分区表的导出操作,并结合SQL语言的基础知识进行阐述。 首先,Oracle分区表...

    Oracle实现对查询结果每N条再次分组博客所用数据库

    标题中的“Oracle实现对查询结果每N条再次分组”是指在Oracle数据库中进行数据处理时,使用SQL语句对查询结果进行分组,而这里的“每N条再次分组”通常指的是使用GROUP BY子句配合ROW_NUMBER()、PARTITION BY等函数...

    Oracle表分区

    Oracle表分区是数据库管理系统Oracle中的一种高级特性,用于优化大规模数据存储和管理的效率。它将一个大表分成逻辑上独立的部分,每个部分称为分区,从而实现数据的局部操作和管理。这种技术对于处理海量数据的企业...

    Oracle+分区表++总结

    分区技术将一个大表分解成多个独立的段,每个段都是一个分区,并且可以根据特定列的值分布到不同的分区中。这种设计增强了数据的管理和查询效率,同时提高了系统的整体性能。 一、分区表理论知识 Oracle 的分区表...

    Oracle系列_分区

    `分区练习.pdc`和`分区练习.~pdc`这两个文件可能是某个Oracle分区操作的练习或教程文档。`.pdc`可能是一种自定义的文件扩展名,代表Partition Data Configuration,用于存储分区相关的配置信息。`.~pdc`可能是该文件...

    Oracle表分区[参考].pdf

    Oracle表分区是数据库管理系统Oracle中的一种高级特性,用于优化大规模数据存储和检索的效率。它将一张大表在物理上划分为多个独立的部分,每个部分称为一个分区,但逻辑上这些分区仍然表现为单一的表。这种技术对于...

    oracle分区培训

    Oracle分区是Oracle数据库系统中的一个高级特性,它允许大型表和索引被分解为更小、更易管理的部分,称为分区。这种技术极大地提升了数据管理和查询性能,尤其在处理大量数据时。Oracle分区培训旨在帮助数据库管理员...

    Oracle数据库组合分区的一种实现方法.pdf

    在Oracle数据库中,表分区是一项重要的数据组织策略,尤其在处理大规模数据时,可以显著提升查询效率和管理效能。数据库提供了四种主要的分区方法:范围分区、散列分区、列表分区以及组合分区。范围分区基于属性列的...

    Oracle中的分析函数详解

    分析函数(Analytic Functions)是Oracle SQL中的高级特性,它们在数据集上执行计算,并返回基于分组或排序的数据结果。与聚合函数(如SUM, AVG, COUNT等)不同,分析函数可以在每个行级别上返回结果,而不只是返回...

    高性能动态SQL Oracle数据安全 Oracle 数据库的聚簇技术 等等

    在Oracle中,可以结合ROWNUM和ORDER BY实现分页查询,或者使用子查询和RANK()函数获取特定排名的记录。 11. **数据安全**: Oracle提供多种安全措施,如用户权限管理、角色、审计和透明数据加密。应合理分配权限,...

    oracle中文培训教材.rar

    高级SQL特性如子查询、联接、聚合函数、窗口函数和分组策略(如分桶和分区)是提升查询效率的关键。 5. **DBA角色与职责**:DBA是数据库的守护者,负责数据库设计、性能优化、安全设置、备份与恢复等任务。他们使用...

    Oracle PPT

    SQL查询用于从数据库中检索数据,包括选择、投影、连接、分组和排序等操作。SQL函数则增强了查询的灵活性,例如聚合函数(SUM, AVG, COUNT, MAX, MIN)用于计算总计和统计信息,字符串函数(SUBSTR, CONCAT, INSTR)...

    TianleSoftware Oracle中文学习手册

    - Oracle 11g中的分区表新特性: 包括Interval Partitioning、System Partitioning以及Virtual Column-Based Partitioning等。 4. Oracle锁和阻塞 在并发环境中,锁是Oracle用来控制数据访问的机制。 - 锁的概念: ...

    Oracle SQL(SQL for Oracle)

    Oracle SQL,全称为结构化查询语言在Oracle数据库环境中的应用,是数据库管理员和开发人员用于检索、更新和管理Oracle数据库的核心工具。Oracle SQL是SQL标准的扩展,它提供了许多特有的功能,以满足企业级数据库...

    《oracle 教程》熟练使用主流数据库orcale

    在Oracle中,用户可以使用SELECT语句进行数据查询,结合WHERE子句进行条件筛选,以及GROUP BY和HAVING子句进行数据分组和过滤。此外,SQL函数如COUNT、AVG、SUM、MAX和MIN等用于统计和计算,而LIKE和IN则用于复杂的...

    Oracle多行记录合并

    6. **`MODEL` 指令:** 这是Oracle中的高级SQL特性,可以处理复杂的矩阵运算和数据转换,包括多行记录的合并。使用`MODEL`指令需要对Oracle SQL有深入理解,但能解决一些其他方法无法处理的复杂问题。 在实际应用中...

Global site tag (gtag.js) - Google Analytics