`

PLSQL查询分类组中的每一组最大值的一条记录

    博客分类:
  • SQL
阅读更多
//根据object_id分组,每组中,取survey_id最大,按survey_id排序为desc。
//取survey_id最小,按survey_id排序为asc
//rank() 或者 row_number()
select * from (select rank() over(partition by a.object_id order by a.survey_id desc
) rn,a.*
   from (select * from T_Icm_Clm_Mt_Survey) a) 
   where rn = 1

去掉rn = 1的条件



就是根据排序,然后通过rn = 1来获得所需的最大值,最小值


OVER(PARTITION BY)函数介绍
over(order by salary) 按照salary排序进行累计,order by是个默认的开窗函数
   over(partition by deptno)按照部门分区


   over(partition by deptno order by salary)

2:开窗的窗口范围:
over(order by salary range between 5 preceding and 5 following):
窗口范围为当前行数据幅度减5加5后的范围内的。
over(order by salary rows between 5 preceding and 5 following):
窗口范围为当前行前后各移动5行。

与over函数结合的几个函数介绍

row_number()over()、rank()over()和dense_rank()over()函数的使用
  1.在求第一名成绩的时候,不能用row_number(),因为如果同班有两个并列第一,   
    row_number()只返回一个结果;

  2.rank()和dense_rank()可以将所有的都查找出来:
    如上可以看到采用rank可以将并列第一名的都查找出来;
     rank()和dense_rank()区别:
     --rank()是跳跃排序,有两个第二名时接下来就是第四名;
     --dense_rank()l是连续排序,有两个第二名时仍然跟着第三名

详细请看博文   http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.html
  • 大小: 1.7 KB
分享到:
评论

相关推荐

    plsql中文使用说明

    - 在长时间运行的任务中,可以开启跟踪记录每一步执行情况。 - 跟踪日志有助于分析性能瓶颈等问题。 ##### 4.12 回归测试 - 自动化执行一组预定义的测试用例来验证软件的稳定性。 - 可以设置定时任务定期执行回归...

    plsql developer 7.0 最新中文手册 pdf格式

    - 定义一组固定的查询条件作为模板。 - 便于日后快速调用。 #### 七、命令窗口 **7.1 输入SQL语句和命令** - 在命令窗口中可以直接输入SQL语句或命令。 **7.2 开发命令文件** - 将常用的命令组合起来保存为文件。...

    PLSQLDeveloper下载

    即当一个对数据库的查询操作返回一组结果集时,用游标来标注这组结果集,以后通过对游标的操作来获取结果集中的数据信息。这里特别提出游标的概念,是因为它在PL/SQL的编程中非常的重要。定义游标的语法结构如下: ...

    PLSQL中sql语句1

    - 分组统计`emp`表中的数据,按照`eno`分组,并计算每组内的最大值、最小值、计数、总和及平均值。 通过以上知识点的学习,可以更好地理解PL/SQL在Oracle数据库中的应用,特别是在进行用户管理和表操作方面的具体...

    oracle plsql基本语法

    - **SELECT 语句**: 必须与 INTO 子句结合使用,且结果集只能包含一条记录。 - **DML 语句**: 可以直接使用,与 SQL 中的 DML 语句完全相同。 - **DDL 语句**: 需要使用 EXECUTE IMMEDIATE 语句。 #### 八、控制...

    官方网站下的SQL语言参考大全(CHM版)2.1M

    2. **聚合函数**:SQL提供了如COUNT(), SUM(), AVG(), MAX()和MIN()等聚合函数,用于统计和计算一组值的总和、平均值、最大值和最小值。 3. **联接操作**:JOIN语句允许将多个表的数据结合在一起,有内连接(INNER ...

    sql技术收集3

    在SQL中,组函数是用于处理一组值而不是单个值的函数,它们在数据聚合时非常有用。PL/SQL中的常见组函数包括: 1. COUNT():返回指定列的行数,可以统计非空值或所有行。 2. SUM():对指定列的所有数值进行求和。 3...

    PL/SQL Developer8.04官网程序_keygen_汉化

    即当一个对数据库的查询操作返回一组结果集时,用游标来标注这组结果集,以后通过对游标的操作来获取结果集中的数据信息。这里特别提出游标的概念,是因为它在PL/SQL的编程中非常的重要。  定义游标的语法结构如下...

    Oracle9i的init.ora参数中文说明

    如果为此参数指定了一个值, 则该值将覆盖 make 文件中的默认值。 值范围: C 编译程序的完整路径。 默认值: 无 remote_dependencies_mode: 说明: 用于指定数据库为远程 PL/SQL 存储的过程处理被依赖对象的方式。如果...

    Oracle学习要点记录(包括DML\DDL等数据库管理语句)

    - 存储过程是一组预编译的SQL语句和控制流语句,存储在数据库中供应用程序调用。 - 示例: ```plsql CREATE OR REPLACE PROCEDURE pro_ic AS CURSOR cur_so IS SELECT vBillCode, dBillDate FROM ic_saleout_h ...

    oracle9i帮助文档

    此命令将向`products_tbl`表中插入一条新记录,其中`prod_id`为7725,`prod_desc`为'LEATHER',`cost`为26.99。 ##### 更新数据 (UPDATE) **语法:** ```sql UPDATE table_name SET column_name = new_value [WHERE...

    Oracle 常用命令大全

    - `MAX(DISTINCT|ALL|N expr)`:最大值 - `MIN(DISTINCT|ALL|N expr)`:最小值 - `SUM(DISTINCT|ALL|N expr)`:求和 - `STDDEV(DISTINCT|ALL|N expr)`:标准偏差 - `VARIANCE(DISTINCT|ALL|N expr)`:方差 #### ...

    21天sql自学通 pdf

    - **GREATEST/LEAST**:分别返回一组值中的最大值和最小值。 - **USER**:返回当前用户的用户名。 #### 第五天:SQL中的子句 - **WHERE子句**:用于过滤记录,只显示满足指定条件的行。 - **STARTING WITH子句**...

    数据库试题

    - **解析**: 此语句选择`inventory`表中`summary`字段值大于或等于其他所有记录中`summary`字段最大值的记录。 **2. 更新特定条件下的记录** - **SQL语句**: `UPDATE inventory SET summary = summary * 0.8 ...

    Oracle8i_9i数据库基础.doc

    表格中的每一行称为一个记录或元组,每一列则代表一个属性或字段。 - **Codd十二法则:** Codd提出的十二条规则用于评估关系数据库管理系统是否真正符合关系模型的标准。这些规则涉及数据独立性、完整性约束、数据...

    网易DBA面试题仅供参考

    - Linux核心参数:`kernel.shmall`和`kernel.shmmax`控制共享内存段的最大值,`kernel.shmmni`设置系统中最大共享内存段数量。 3. **DB题** - **事务**:是数据库操作的基本单位,保证数据的一致性。ACID特性包括...

    SQL21天自学通

    - 这条命令将返回customers表中的所有记录。 #### 第三天:表达式、条件语句与运算 - **表达式**: - 在SQL中,表达式是由常量、变量、函数、运算符等组成的组合。 - 用于计算新的值。 - **条件语句**: - 如`...

Global site tag (gtag.js) - Google Analytics