`
shuai1234
  • 浏览: 977963 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

oracle查询:取出每组中的第一条记录

 
阅读更多

按type字段分组,code排序,取出每组中的第一条记录

 

方法一:

 

select type,min(code) from group_info
group by type;

 

注意:select 后面的列要在group by 子句中,或是用聚合函数包含,否则会有语法错误。

 

方法二:

 

SELECT * FROM(
SELECT z.type , z.code ,ROW_NUMBER()
OVER(PARTITION BY z.type ORDER BY z.code) AS code_id
FROM group_info z
)
WHERE code_id =1;

 

这里涉及到的over()是oracle的分析函数

 

参考sql reference文档:

 

Analytic functions compute an aggregate value based on a group of rows. They differ from aggregate functions in that they return multiple rows for each group.

 

Analytic functions are the last set of operations performed in a query except for the final ORDER BY clause. All joins and all WHERE , GROUP BY , and HAVING clauses are completed before the analytic functions are processed. Therefore, analytic functions can appear only in the select list or ORDER BY clause.

 

语法结构:

 

analytic_function ([ arguments ]) OVER
 (analytic_clause)

其中analytic_clause结构包括:

 

[ query_partition_clause ]
[ order_by_clause [ windowing_clause ] ]

 

也就是:函数名( [ 参数 ] ) over( [ 分区子句 ] [ 排序子句 [ 滑动窗口子句 ] ])

 

     这里PARTITION BY 引导的分区子句类似于聚组函数中的group by,排序子句可看成是select语句中的order by.

分享到:
评论

相关推荐

    SQL获取第一条记录的方法(sqlserver、oracle、mysql数据库)

    Sqlserver 获取每组中的第一条记录 在日常生活方面,我们经常需要记录一些操作,类似于日志的操作,最后的记录才是有效数据,而且可能它们属于不同的方面、功能下面,从数据库...下面给大家介绍oracle查询取出每组中的

    一个oracle根据特定字符截取数据

    这里 `INSTR(data_column, ',', 1)` 找到逗号的第一个位置,然后 `SUBSTR()` 从开始位置1截取到逗号之前的所有字符。 在实际应用中,可能还需要处理更复杂的情况,比如截取最后一个值、处理缺失或多个分隔符的情况...

    oracle 全文检索实现

    在检索时,从索引文件取出主键及表名,查询数据库来显示这一条记录的详细信息。 Oracle 全文检索实现的总体架构图由五个部分组成:XML 配置文件、读取器、索引器、索引库和检索器。其中,XML 配置文件存储数据库的...

    最全的oracle常用命令大全.txt

    一、ORACLE的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup SVRMGR>quit b、关闭...

    最全的oracle函数大全

    Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的内置函数,以方便用户进行数据处理和查询。以下是一些在Oracle中常用的函数,这些函数在数据库操作中扮演着重要角色。 1. ASCII函数:ASCII函数...

    Oracle通过正则表达式分割字符串 REGEXP_SUBSTR的代码详解

    REGEXP_SUBSTR函数格式如下: ...occurrence :标识第几个匹配组,默认为1 modifier :模式(‘i’不区分大小写进行检索;’c’区分大小写进行检索。默认为’c’) SELECT REGEXP_SUBSTR('123,,,ABC,!@#,,,', '[^,]

    oracle e-business suite 功能流程详解

    主物品定义是创建新物品的第一步,包括基本信息、描述、分类等,是后续所有操作的基础。 #### Define Item Category 物品分类则进一步细化物品的分类,便于管理和检索,同时也影响物品的处理流程。 #### Define ...

    SQL练习题.pdf

    写出一条 SQL 语句:取出表 A 中第 31 到第 40 记录 解决方案: * MySQL:`select * from A limit 30, 10` * MS-SQL Server: + 解法 1:`select top 10 * from A where id not in (select top 30 id from A)` +...

    截取用,分割的字符串中的第n个字符串 SQL

    - **处理边界情况**:如果找不到更多的分隔符,则默认将`@location`设置为字符串的长度加1,以便正确截取出最后一个子字符串。 - **返回子字符串**:利用`SUBSTRING`函数根据`@start`和`@location`的值截取第n个子...

    SQL性能优化

     以上两个SQL中dy_dj(电压等级)及xh_bz(销户标志)两个字段都没进行索引,所以执行的时候都是全表扫描,第一条SQL的dy_dj = '1KV以下'条件在记录集内比率为99%,而xh_bz=1的比率只为0.5%,在进行第一条SQL的...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    全书压缩打包成2部分,这是第1部分。 注:本系列图书的第I、II卷再版时均相应改名为《xxx开发实例大全》(基础卷)及(提高卷),但内容基本无变化,需要的童鞋可自由匹配查找。 内容简介  《PHP开发实战1200例》分为...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    目录: 第1篇 基础篇 第1章 开发环境 2 1.1 AppServ——PHP集成化安装包 3 实例001 通过AppServ配置PHP开发环境 3 实例002 AppServ应用技巧 6 实例003 第1个PHP程序 7 1.2 XAMPP——PHP集成化安装包 8 实例004 通过...

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

    在本文第一段代码中有一句话如下: cursor c_emp is select * from employee where emp_id=3; 其含义是定义一个游标c_emp,代表employee表中所有emp_id字段为3的结果集。  当需要操作该结果集时,必须完成三步:...

    Oracle批量插入数据的三种方式【推荐】

    这种方法的关键在于,使用序列(如`tableNames_seq`)生成主键值,并通过`UNION`操作合并多条记录。这种方法的优势在于可以有效地管理事务,提高性能,尤其是在插入的数据量巨大时。 总结来说,选择哪种批量插入...

    (重要)AIX command 使用总结.txt

    1、将安装盘第一张放入光驱; 重启小型机选择主控台,按屏幕上提示的数字;选择语言,一般选english;选择3进入维护模式(start maintenence mode for system recovery); 选择1进入access a root volume group;选择0进入...

    数据库操作语句大全(sql)

    3),例如:在一个外部表中导入数据,由于某些原因第一次只导入了一部分,但很难判断具体位置,这样只有在下一次全部导入,这样也就产生好多重复的字段,怎样删除重复字段 alter table tablename --添加一个自增列 ...

Global site tag (gtag.js) - Google Analytics