oracle查询:取出每组中的第一条记录
来源:互联网 发布:软件研发部门职责 编辑:程序博客网 时间:2024/05/01 21:46
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.
- oracle查询:取出每组中的第一条记录
- oracle查询:取出每组中的第一条记录
- oracle查询:取出每组中的第一条记录
- oracle查询:取出每组中的第一条记录
- oracle查询:分组查询,取出每组中的第一条记录
- oracle查询:分组查询,取出每组中的第一条记录
- oracle相关:如何取出每组中的第一条记录
- oracle取出每组中的第一条记录
- oracle分组查询第一条记录和每组的个数
- 取出分组后每组的第一条记录(不用group by)按时间排序
- Oracle 分组后取每组的第一条记录
- Sqlserver 获取每组中的第一条记录
- oracle 取出分组中的第一条数据
- oracle 取出分组中的第一条数据
- 分组查询后得到每组中的第一条数据
- oracle取出每个分组的第一条记录
- 取出分组之后每组前10条数据 oracle
- (oracle/mysql)查询出分组查询每组的第一条数据
- 比较两个字符串的大小,并显示最大的字符串,如果两个字符串相同则显示第一个
- c++异常机制
- java 保留小数点方法总结
- u32 mac以及arp匹配
- 坚持
- oracle查询:取出每组中的第一条记录
- 使用4种不同的方式访问数组中的元素
- 长时间整理的xhtml网页设计规范
- android混淆使用
- 黑马程序员---迭代器Iterator的使用及其相关方法
- 防止vps主机被别人绑定域名解析
- Google Local Search API 简介
- 提示sql_server_服务不存在或拒绝访问
- JQuery模拟拖拽