精华内容
下载资源
问答
  • Oracle 分组取出最大值记录

    千次阅读 2018-11-16 12:28:26
    找出一个固定ID不同类型文件的最大版本号:也就是相同文件类型的 Max(version)  注意:  重点应该在 rank() over(partition by xxx order by version desc)   rank函数用于返回结果集的分区内每行的排名...

    一. 业务需求背景

    找出一个固定ID值不同类型文件的最大版本号:也就是相同文件类型的 Max(version) 

    注意:

            重点应该在 rank() over(partition by xxx order by version desc) 

            rank函数用于返回结果集的分区内每行的排名,行的排名是相关行之前的排名数加一。简单来说rank函数就是对查询出来的记录进行排名,与row_number函数不同的是,rank函数考虑到了over子句中排序字段值相同的情况,如果使用rank函数来生成序号,over子句中排序字段值相同的序号是一样的,后面字段值不相同的序号将跳过相同的排名号排下一个,也就是相关行之前的排名数加一,可以理解为根据当前的记录数生成序号,后面的记录依此类推。

            dense_rank函数的功能与rank函数类似,dense_rank函数在生成序号时是连续的,而rank函数生成的序号有可能不连续。dense_rank函数出现相同排名时,将不跳过相同排名号,rank值紧接上一次的rank值。在各个分组内,rank()是跳跃排序,有两个第一名时接下来就是第三名,dense_rank()是连续排序,有两个第一名时仍然跟着第二名。

    关于rank的解释rank函数的解释  通过 partition by 字段 将内容分割 再由排序取出当前的第一条就可以了。

     

    展开全文
  • oracle如何取分组最大值记录

    万次阅读 2015-11-23 13:55:10
    分组最大值记录   比如  序号 名称 数量   1 A 20  2 A 10  1 B 20  2 B 
    分组最大值记录 
    

     

    比如
        序号          名称       数量       
           1              A        20
           2              A        10
           1              B        20
           2              B        40
           3              B        10
           1              C        20
           2              C        40

     

    子查询:

    select * from 表 where (序号,名称) in (select max(序号),名称 from 表 group by 名称)

     

     分析函数:

     

    select 序号   ,       名称     ,  数量 from 
    (select    序号   ,       名称     ,  数量 
    ,row_number() over(partition by 名称 order by 序号  desc ) rn
    form tab_name )
    where rn=1


    select 序号   ,       名称     ,  数量 from 
    (select    序号   ,       名称     ,  数量 
    , max(序号) over(partition by 名称) rn
    form tab_name )

    where rn=序号

    注意:max的字段只能是number类型字段,如果是date类型的,会提示错误。date类型用上面的row_number()来做就可以了。


    Oracle 分组 取第一条记录
    id        apply_id
    1         1
    2         1
    3         1
    4         2
    5         2
    6         3
    7         3
    8         3

    取出
    id        apply_id
    3         1
    5         2
    8         3

    select alx_a.id
    from 
    (select id,apply_id,rownum rid from 表) alx_a,
    (select id,apply_id,rownum rid from 表) alx_b
    where alx_a.apply_id = alx_b.apply_id and alx_a.id <= alx_b.id 
    group by alx_a.id,alx_a.apply_id
    having count(*) = 1

     

    在oracle中有一数据表exam_result(成绩记录表),

    表中的一条记录描述了“某个班某个学生某次考试的成绩"

    create table EXAM_RESULT 

      ID      NUMBER(10) not null,                   --主键
      CLASSID NUMBER(10) not null,           --  班级id,关联到班级表
      USERID  NUMBER(10) not null,             --用户id,关联到用户表
      EXAMID  NUMBER(10) not null,             --试卷id,关联到试卷表
      RESULT  NUMBER(3)                              --成绩
    )

     

    现在要求统计完成了试卷id为1,2,3的成绩的前3名

    即完成了试卷id为1的前3名,完成了试卷id为2的前3名,完成了试卷id为3的前3名

     

    select * from (
          select
            e.classid,
            e.userid,
            e.examid,
            e.result,
                row_number() over (partition by e.examid order by e.examid, e.result desc) rn
                       from exam_result e
                            where e.examid in (1,2,3)
    ) where rn <= 3
    展开全文
  • oracle 获取最大日期记录

    千次阅读 2015-12-18 15:56:20
    SELECT * FROM table T WHERE NOT EXISTS (SELECT 1 FROM table T1 WHERE TRUNC(T1.CREATEDATE) > TRUNC(T.CREATEDATE))
    SELECT * FROM table T WHERE NOT EXISTS (SELECT 1 FROM table T1 WHERE TRUNC(T1.CREATEDATE) > TRUNC(T.CREATEDATE))
    展开全文
  • oracle查询最大值

    2021-08-13 11:18:36
    对接的一个工作人员突然发来消息说之前发给他的最大证件流水号不太对啊 赶紧查了查,之前是用max函数查的...查询最大值最好用max(to_number(number))转换一下 这样才能算是万无一失,真是大意了查完也没核对!!! ...

    对接的一个工作人员突然发来消息说之前发给他的最大证件流水号不太对啊

    赶紧查了查,之前是用max函数查的,这次直接查询了地区的明细发现果然有问题,直接用max(number) 还真是坑了。
    某度了一下,如果是按字符串排列,999会大于 100000。

    查询最大值最好用max(to_number(number))转换一下 
    这样才能算是万无一失,真是大意了查完也没核对!!!

    展开全文
  • oracle取某字段有最大值的整行记录一行记录 oracle 获取 有 最大值 的 一行 记录
  • 最近碰到一个数据库问题,要查找一行记录最大值,以及最大值所在的列标志。表如下:表名 Test_dataid data_1 data_2 data_3 max_data max_data_time1 1 2 3 [ ] [ ]2 6
  • 样例表:学生各科分数表(stu_score_t) 分析举例,提取每个学生分数最高一科记录 select student,course,score,row_number() over(partition by student ...学生成绩进行排序(倒序),如要取最大记录,限制rn=1即可
  • 1,有一张交易流水表,里面记录交易时间(pay_date)、交易人卡Id(cardId),需要统计,连续有交易流水的人,的前10名? 这条语句该怎么写?或者有其他的办法吗
  • oracle去除重复记录查询统计

    千次阅读 2013-10-15 10:43:03
    ] ---统计各个psam卡号的数量(oracle&mysql)。 SELECT psamcode, count( * ) AS count FROM cms_psamcard GROUP BY psamcode ORDER BY count DESC LIMIT 20 ---oracle delete from stu a where ...
  • oracle最大值的问题

    2015-11-11 03:44:49
    这是我的oracle Sql 这是结果: ![图片说明](https://img-ask.csdn.net/upload/201511/11/1447213107_962967.png) 我只想取第一条,我知道可以用rownum=1 来取 但是 对单条数据可以,多条数据 就不行了,有重复...
  • SQL(oracle) 取得分组后最大值记录

    万次阅读 2012-05-08 16:19:17
    row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的就表示每组内部排序后的顺序编号(组内连续的唯一的).  与rownum的区别在于:使用rownum进行...
  • 1、需求: 今天有个需求,即取所有对象中最大版本号中最大版次号的对象 2、数据表基本介绍 包含OID,REVISIONOID,NAMEOID,REVRULE, REVSEQ, VERRULE, VERSEQ等 同一个对象...
  • oracle去重取最大值

    千次阅读 2014-10-09 10:14:15
    做一个查询需要提取每个人重复之后最新的记录,刚开始用分组排序等方法觉得不行, distinct可以去掉重复的,但我还需要拿到这个表的主键id,这样distinct就不支持了。distinct语句中select显示的字段只能是...
  • 1.使用oracle内置的greatest()和least()函数,具体示例如下: select 5 as col1,6 as col2,9 as col3,1 as col4 from dual; -------------------------------------- col1 | col2 |col3 |col4 5 6 9 1 select g...
  • Oracle最大值问题

    千次阅读 2015-12-11 15:22:50
    1 有2个表结构如下: A表结构 Id value 1 10 2 20 3 30 4 30 5 30 6 20 7 40 B表结构 Id column 2 aaa ...A表和B表ID关联以后,取出A表value最大的所有记录 结果: I
  • Oracle最大值加1

    千次阅读 2019-05-29 16:43:00
    1.select to_char(nvl(max(to_number(column)),0)+1) column from Table to_number转成数字类型,然后max取最大值,然后nvl处理一下,然后转成char类型+1
  • Oracle数据库获取一行记录中某几个字段的最大值/最小值函数 在数据库的开发过程中,我们可能会遇到这样的需求,获取一行记录中某几个字段的最大值或者是最小值,oracle给我们提供了解决这种需求的函数,如下所示: ...
  • ORACLE单表理论最大记录

    千次阅读 2018-01-17 13:30:00
    不考虑硬件诸如内存,存储等硬件的限制。 一张表理论能存储多少条记录呢?   假设: 一个tablespace中包含1022个datafiles, 单个datafiles的最大是32G ...1.一个表空间tablespace的最大值:datafile个...
  • 例如登录日志表中查询 所有用户最后一次登录时间,需要对用户id进行分组,并获取登录时间最大的那一条数据 语法: SELECT* FROM(SELECT分组的字段名, ROW_NUMBER()OVER(PARTITIONBY分组的字段名ORDERBY排序...
  • (1)oracle使用keep分析函数取最值记录 -- 取工资sal最大的雇员姓名及其工资,以及工资sal最少的雇员姓名及其工资 select deptno, empno, ename, sal, max(ename) keep(dense_rank FIRST order by ...
  • Oracle取某字段最大的整行记录内容

    万次阅读 2018-11-05 10:26:40
    select *  from (select t.*, row_number() over (order by worklist_id desc) as rnum  from table_name t where t.wf_serial_no='1342121')   where rnum = 1;
  • 最近在写个分组查询获取最新时间戳的语句时,发现这样写挺受用的,分享之:   select * from test a where a.updatetime=(select max(b.updatetime) from test b where a.type=b.type) ...
  • Oracle数据库查询某个字段最大长度的记录 hart.js/select 字段, length(字段) from 表名 where length(字段) = ( select max(length(字段)) from 表名 ) 转载于:https://www.cnblogs.com/lxcmyf/p/7146683.html
  • SELECT a."RN",a."ID",a."USERCODE",a."LOGINTIME",a."BZ",a."DQCODE" FROM (SELECT ROW_NUMBER() OVER(PARTITION BY usercode ORDER BY logintime DESC) rn,sys_userlogin_info.* FROM sys_userlogin_i...
  • oracle去除数据库中重复记录的办法

    千次阅读 2012-12-16 01:47:58
    平时工作中可能会遇到当试图对库表中的某一列或几列创建唯一索引时,系统提示 ORA-01452 :不能创建唯一索引,发现重复记录。  下面总结一下几种查找和删除重复记录的方法(以表CZ为例):  表CZ的结构...
  • Oracle最大值加1

    千次阅读 2014-09-20 11:55:03
    select to_char(nvl(max(to_number(mcode)),0)+1) mcode,mdirname from T_MATERIAL_INFO  group by mdirname

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 106,427
精华内容 42,570
关键字:

oracle去最大值记录