对Oracle多数据进行分组排序后取每组第一条记录 Sql代码 SELECT * FROM (SELECT ROW_NUMBER() OVER(PARTITION BY <PK_FINANCE_ACCOUNT_1> ORDER BY <amassdate> DESC) LEV, <hx_amass_liquid>.* FROM <hx_amass_liquid>) WHERE LEV = 1 ORDER BY <PK_FINANCE_ACCOUNT_2> DESC
SELECT * FROM (SELECT ROW_NUMBER() OVER(PARTITION BY <PK_FINANCE_ACCOUNT_1> ORDER BY <amassdate> DESC) LEV, <hx_amass_liquid>.* FROM <hx_amass_liquid>) WHERE LEV = 1 ORDER BY <PK_FINANCE_ACCOUNT_2> DESC
<PK_FINANCE_ACCOUNT_1> -- 分组列
<amassdate> -- 排序列
<hx_amass_liquid> -- 表名
<PK_FINANCE_ACCOUNT_2> -- 排序列注:<hx_amass_liquid>.* -- 一定要有表名,否则会报“缺失表达式”错误==========================================================分组时不仅想取每组的第一条记录,还想取每组共有几条记录Sql代码 SELECT * FROM ( SELECT ROW_NUMBER() OVER(PARTITION BY PK_FINANCE_ACCOUNT ORDER BY amassdate DESC) LEV,
count(0) over(partition by PK_FINANCE_ACCOUNT) cnt,
hx_amass_liquid.* FROM hx_amass_liquid ) WHERE LEV = 1 ORDER BY PK_FINANCE_ACCOUNT DESC
更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12Oracle 优化器与sql查询执行顺序探索Oracle之RMAN_04非一致性备份相关资讯 Oracle高级培训
- delete表的数据后恢复 (08/30/2012 08:59:58)
- 使用ASH信息,发现高CPUsession (08/14/2012 07:21:32)
- 如何阅读Oracle Errorstack Output (08/14/2012 07:15:47)
| - Oracle Apps Patching:adpatch( (08/16/2012 15:41:37)
- 话说V$SQL_MONITOR (08/14/2012 07:19:54)
- Oracle Apps DBA工具:ADADMIN使用 (08/14/2012 07:00:09)
|
本文评论 查看全部评论 (0)