oracle查询:取出每组中的第一条记录
来源:互联网 发布:淘宝店铺服装简介 编辑:程序博客网 时间:2024/05/01 22:01
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.
转自:http://blog.csdn.net/lanmao100/article/details/6252969
- oracle查询:取出每组中的第一条记录
- oracle查询:取出每组中的第一条记录
- oracle查询:取出每组中的第一条记录
- oracle查询:取出每组中的第一条记录
- oracle查询:分组查询,取出每组中的第一条记录
- oracle查询:分组查询,取出每组中的第一条记录
- oracle相关:如何取出每组中的第一条记录
- oracle取出每组中的第一条记录
- oracle分组查询第一条记录和每组的个数
- 取出分组后每组的第一条记录(不用group by)按时间排序
- Oracle 分组后取每组的第一条记录
- Sqlserver 获取每组中的第一条记录
- oracle 取出分组中的第一条数据
- oracle 取出分组中的第一条数据
- 分组查询后得到每组中的第一条数据
- oracle取出每个分组的第一条记录
- 取出分组之后每组前10条数据 oracle
- (oracle/mysql)查询出分组查询每组的第一条数据
- Worldwind 图片的dds格式、jpg格式比较
- Unity3d使用过程中常见的20个问题
- Unity3d游戏场景优化杂谈
- 在ubuntu中配置SSH(解决connect to host localhost port 22: Connection refused问题)
- 使用Unity开发项目的一点经验
- oracle查询:取出每组中的第一条记录
- 基于IPv6的多播通信
- Windows 8安装Wireshark 1.8.3
- 异步回收fork出的子进程(僵尸进程)
- 僵尸进程和孤儿进程
- 程序员的八荣八耻
- 数据库的三范式
- 字典树 (解析加模版)
- 管道通信