`

关于oracle分组后组外排序的问题

 
阅读更多

[求助]关于oracle分组后组外排序的问题

只用查询语句实现:
DEPTNO ENAME SAL TOP3
---------- ---------- ---------- ----------
20 KING 5000 1
20 CLARK 2450 2
20 MILLER 1300 3

10 SCOTT 3000 1
10 FORD 3000 2
10 JONES 2975 3

30 BLAKE 2850 1
30 ALLEN 1600 2
30 TURNER 1500 3

按部门分组,部门内部的sal降序,部门间按每个部门sal最大值(粗体字)降序,该如何实现 ,请教各位高手!!谢谢!!
------------------------------------------------------------------------------------------------------------------------------------------

回复:[求助]关于oracle分组后组外排序的问题

selelct t1.*
from (select DEPTNO ,ENAME ,SAL , row_number() over(partition by deptno order by sal desc) top3 from tableName) t1,
(select rownum seq,depno from (select deptno ,max(sal) from tablename group by depno order by max(sal) desc)) t2
where t1.deptno=t2.deptno order by t2.seq,t1.sal desc;
分享到:
评论

相关推荐

    oracle分组排序统计高级用法

    #### 一、Oracle分组排序和统计概述 在Oracle数据库中,实现分组排序和统计是一项常见的需求,主要用于处理大量的数据,并从中提取有价值的信息。通过合理运用SQL语句,特别是`GROUP BY`、`ORDER BY`以及分析函数等...

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

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

    oracle 根据部门求和排序

    上面语句表示,根据col1分组,在分组内部根据col2排序,这里的“别名”的值就是每组内部排序后的序列号(组内连续的、唯一的),“[partition by col1] ”可以省略。

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

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

    Oracle多行记录合并

    使用`MODEL`指令需要对Oracle SQL有深入理解,但能解决一些其他方法无法处理的复杂问题。 在实际应用中,选择哪种方法取决于具体的需求、数据结构以及Oracle数据库的版本。例如,如果只需要简单的字符串连接,`...

    oracle处理的类型 oracle行排序

    在Oracle数据库中,处理数据类型和行排序是两个非常关键的操作。Oracle支持多种数据类型,这些数据类型用于存储各种类型的信息,如数字、文本、日期等。了解并熟练掌握这些数据类型对于有效管理和操作数据库至关重要...

    如何在水晶报表中分组排序记录源程序实例,C#.net源代码编写,

    在Crystal Reports中,分组和排序是数据呈现的关键步骤,特别是在C#.NET环境中,通过Visual Studio.NET进行开发时。这篇文章将深入探讨如何使用C#.NET编写源代码来实现这一功能。 首先,理解水晶报表(Crystal ...

    Mysql利用group by分组排序

    首先先按某个字段进行order by,然后把有顺序的表进行分组,这样每组的成员都是有顺序的,而mysql默认取得分组的第一行。从而得到每组的最值。 select id, (@rowno := @rowno + 1) as rank, score, (C.end_ti

    oracle 常用sql语句和常见问题

    本资料集主要涵盖了Oracle中的常用SQL语句以及在实际应用中可能遇到的常见问题及其解决策略。 1. **SQL基本操作**: - **SELECT语句**:用于从表中选择数据。例如,`SELECT * FROM table_name;` 将获取表中的所有...

    oracle材料

    在分组和排序中,`rownum`可以用来限制返回的结果数量,如获取每个组的前N条记录。但要注意,`rownum`在`order by`子句之前计算,因此必须结合子查询或`analytic function`来精确控制排序后的行号。 6. **Wm_concat...

    Oracle SQL(SQL for Oracle)

    3. **SELECT查询**:Oracle SQL的查询语法丰富,可以使用WHERE子句进行条件过滤,GROUP BY和HAVING子句进行分组统计,ORDER BY子句进行排序,以及JOIN操作连接多个表。 4. **视图**:视图是虚拟表,基于一个或多个...

    oracle 查询部分ppt

    其中,SELECT用于定义要查询的列,FROM指定要查询的表,WHERE用于设定查询条件,GROUP BY用于数据分组,HAVING用于分组后的过滤,ORDER BY则用于结果排序。 接着,PPT可能会详细介绍Oracle的高级查询技巧,如联接...

    Oracle官方文档CHM合集-SQL参考手册 Oracle教程 Oracle开发

    4. **查询操作**:SELECT语句是SQL的核心,可以组合使用WHERE子句进行条件过滤,GROUP BY进行分组,HAVING进行分组后的过滤,ORDER BY进行排序,以及JOIN操作连接多个表进行复杂查询。 5. **子查询与联接**:子查询...

    oracle基础问题解决

    了解SQL的子查询、联接、聚合函数(如COUNT、SUM、AVG)以及分组和排序(GROUP BY、ORDER BY)对于日常操作至关重要。 3. 表和索引: 创建表时,需要定义列的数据类型、约束条件(如NOT NULL、UNIQUE、FOREIGN KEY...

    Oracle report builder 教程

    ### Oracle Report Builder 教程详解 #### 一、Oracle Report Builder 概述 Oracle Report Builder 是一款强大的报表开发工具,隶属于 Oracle Developer/2000 R2.0 的产品线,专为基于数据库的报表设计与开发而生...

    Oracle 10G 参考手册 Oracle SQL Reference pdf

    它可以包括各种子句,如WHERE(筛选条件),GROUP BY(分组),HAVING(分组后的筛选),ORDER BY(排序),以及JOIN(联接)操作。 3. **数据类型**: Oracle 10G支持多种数据类型,包括数值类型(如NUMBER,...

    oracle最常用的函数或方法总结

    - `RANK()`, `DENSE_RANK()` 和 `ROW_NUMBER()`:在分组后为每行分配唯一的排名。 7. **连接查询函数** - `JOIN`:将两个或更多表的数据连接在一起。 - `INNER JOIN`, `LEFT JOIN`, `RIGHT JOIN`, `FULL OUTER ...

    【Oracle】LISTAGG函数的使用.pdf

    Oracle LISTAGG 函数是 Oracle 11.2 中引入的一种新特性,主要功能类似于 wmsys.wm_concat 函数,即将数据分组后,把指定列的数据再通过指定符号合并。LISTAGG 函数有两个参数:要合并的列名和自定义连接符号。 ...

    oracle SQL语法大全

    可以使用WHERE子句过滤结果,GROUP BY进行分组,HAVING筛选分组后的结果,ORDER BY进行排序,以及JOIN操作连接多个表。 三、数据类型 Oracle支持多种数据类型,包括数值型(如NUMBER、INTEGER)、字符串型(如...

Global site tag (gtag.js) - Google Analytics