Welcome 微信登录

首页 / 数据库 / MySQL / Oracle分组取第一条数据

对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)
表情: 姓名: 字数