数据库

 首页 > 数据库 > MySql > Oracle分组取第一条数据

Oracle分组取第一条数据

分享到:
【字体:
导读:
         摘要:看看以前的私密日志,原来自己之前被很多小而简单的问题困惑过!看着那时候我们还是新手中的新手做的备忘笔记!其实就是用了Oracle的统计函数而已!以前的日记(看样子应该是以前公司的源码,呵呵……)如下:勿喷!对多数据进行分组排序后取每组第一条记录:...

Oracle分组取第一条数据

看看以前的私密日志,原来自己之前被很多小而简单的问题困惑过!

看着那时候我们还是新手中的新手做的备忘笔记!

其实就是用了Oracle的统计函数而已!

以前的日记(看样子应该是以前公司的源码,呵呵……)如下:勿喷!

对多数据进行分组排序后取每组第一条记录:

SELECT *
  FROM (
       SELECT ROW_NUMBER() OVER(
       PARTITION BY  ZA40011_3.URIAGE_DENPYO_NO,ZA40011_3.URIAGE_DENPYO_ROW_NO  
       ORDER BY  ZA40011_3.KAKUTEI_SURYO_CS,
                  ZA40011_3.KAKUTEI_SURYO_BL,
                  ZA40011_3.KAKUTEI_SURYO_BT,
                  ZA40011_3.SYUKKA_SHIJI_NO,
                  ZA40011_3.SYUKKA_SHIJI_ROW_NO  DESC) LEV,
                ZA40011_3 .*
       FROM  WT_001_ZA40011_22070_2 ZA40011_2,
             WT_001_ZA40011_22070_3 ZA40011_3,
             JT_GYOMU_URIAGE_DETAIL URIAGE_DETAIL
       WHERE 
       ZA40011_2.KAISYA_CODE = URIAGE_DETAIL.KAISYA_CODE
           AND ZA40011_2.URIAGE_DENPYO_NO = URIAGE_DETAIL.URIAGE_DENPYO_NO
           AND ZA40011_2.URIAGE_DENPYO_ROW_NO = URIAGE_DETAIL.ROW_NO
           AND URIAGE_DETAIL.KAISYA_CODE = ZA40011_3.KAISYA_CODE
           AND URIAGE_DETAIL.URIAGE_DENPYO_NO = ZA40011_3.URIAGE_DENPYO_NO
           AND URIAGE_DETAIL.ROW_NO = ZA40011_3.URIAGE_DENPYO_ROW_NO
           AND ZA40011_3.KEPPIN_RIYU_CODE IS NOT NULL
        )
 WHERE LEV = 1
-- ORDER BY KAKUTEI_SURYO_CS DESC

Oracle分组取第一条数据
分享到:
11g的延迟段功能
11g的延迟段功能11gR2之前的版本中,当创建一张表时,会自动分配段空间,这样做有几个弊端: 1. 初始创建表时就需要分配空间,自然会占用一些时间,如果初始化多张表,这种影响就被放大。 2. 如果很多表开始的一段时间都不需要,那么就会浪费这些空间。 为此,从11gR2开始,有一种新特性,叫延迟段,即延迟分配段空间。简单...
mysql5.6.16下跟踪SQL查询转换的结果
mysql5.6.16下跟踪SQL查询转换的结果    当SQL执行时,会做一些查询转换,你看到的SQL很可能被转换为其他的形式的SQL执行(有视图重写,查询转换,谓词推进等)。在Oracle下,可以通过10053跟踪SQL语句。在mysql下,可以通过设置optimizer_trace来实现。 mysql> select version(); +-----------+ | version() | +--------...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……