oracle分组查询取第一条数据,160804、oracle查询:取出每组中的第一条记录

本文介绍了在Oracle数据库中如何查询每组的第一条记录,提供了两种方法:通过`GROUP BY`和聚合函数,以及利用分析函数`ROW_NUMBER()`配合`OVER()`子句。内容涵盖SQL查询语法及分析函数的使用,适用于数据处理和数据库管理场景。
摘要由CSDN通过智能技术生成

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 on

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值