当前位置: 代码迷 >> Oracle开发 >> 二次求MAX的SQL写法
  详细解决方案

二次求MAX的SQL写法

热度:57   发布时间:2016-04-24 07:06:58.0
2次求MAX的SQL写法
表结构:
CREATE TABLE DATA_INFO
(
    SEQ_NO                         VARCHAR2(12) NOT NULL,
    ENT_CODE                       CHAR(8),
    ENT_NUMBER                     CHAR(12),
    BRANCH                         CHAR(2),
    PRINT_DATE                     DATE,
    NUM_1                          CHAR(2),
    NUM_2                          CHAR(2),
    NUM_3                          CHAR(2)
)

求相同
ENT_CODE,ENT_NUMBER,BRANCH
中 PRINT_DATE最大记录的
ENT_CODE,ENT_NUMBER,BRANCH,NUM_1,NUM_2,NUM_3

如果结果集中有复数条记录的情况下
用SEQ_NO最大的来表示

想请教 比较简洁的写法是什么。
(有少于2次子查询的写法吗?)
sql

------解决方案--------------------
百度 : 分析函数.
------解决方案--------------------

selec(t ENT_CODE,ENT_NUMBER,BRANCH,NUM_1,NUM_2,NUM_3
from 
select ENT_CODE,ENT_NUMBER,BRANCH,NUM_1,NUM_2,NUM_3,
       row_number() over(partition by ENT_CODE,ENT_NUMBER,BRANCH order by PRINT_DATE desc,SEQ_NO desc) rn
from DATA_INFO
)
where rn = 1
  相关解决方案