精华内容
下载资源
问答
  • 本文给大家收集整理些关于sql获取第一条记录的方法,包括sqlserver获取第一条记录oracle获取第一条记录,mysql获取第一条记录,对sql获取第一条记录的方法感兴趣的朋友可以参考下本
  • 场景:当我们要查询记录,需要对记录分组并且根据排序第一条数据。 栗子: create table order(--订单表 id number, orderType varchar2(2),--订单类型 orderNo varchar2(20),--订单号 amt number(2,2),-...

    场景:当我们要查询记录,需要对记录分组并且根据排序取到第一条数据。

    栗子:

    create table order(--订单表

    id number,

    orderType varchar2(2),--订单类型

    orderNo varchar2(20),--订单号

    amt  number(2,2),--订单金额

    createtime date --创建时间

    )

    查询需求:查询订单表中不同类型,交易金额最大的订单信息。

    查询脚本:

    select  b.orderType ,

               b.amt

    from (

            select  a.orderType  orderType  ,

                a.amt   amt ,

                row_number() over(partition a.orderType order by  a.amt desc)  num

            from  order a

              )  b   where  b.num=1

    要点

           1、使用 row_number() over()  函数。

           2、partition 后面是原来group by 字段。

    扩展

          当要取前N条记录,使用条件过滤  where num>N 

    展开全文
  • 1. select * from ( select a.*, rownum as rn from tab_name a order by id asc ) where rn = 1 2. select * from tab_name where rownum = 1

    1.

    select * from (
    select a.*, rownum as rn from tab_name a order by id asc
    )
    where rn = 1

    2.

    select * from tab_name where rownum = 1

    展开全文
  • 今天突然客户提出一个需求,要查一下APP所有客户的最近一次登录记录,因为数据库使用的是oracle有点懵逼,首先分析了一下需求,按用户id分组,按登录时间降序,然后每个分组的第一条记录就可以搞定了。经过一顿...

    今天突然客户提出一个需求,要查一下APP所有客户的最近一次登录记录,因为数据库使用的是oracle有点懵逼,首先分析了一下需求,按用户id分组,按登录时间降序,然后取每个分组的第一条记录就可以搞定了。经过一顿折腾写出了以下sql语句,成功解决。

    SELECT
        *
    FROM
        (
            SELECT
                ROW_NUMBER () OVER (
                    PARTITION BY USER_ID
                    ORDER BY
                        TIME DESC
                ) rn,
                LOGIN_RECORD_INFORMATION.*
            FROM
                LOGIN_RECORD_INFORMATION
        )
    WHERE
        rn = 1;

    希望正好有此需求的人可以用得到。

     

    展开全文
  • 主要介绍了Oracle结合Mybatis实现表TOP 10数据的相关资料,需要的朋友可以参考下
  • Oracle取TOP N条记录

    2018-08-06 17:59:34
    在SQL Server里面有top关键字可以很方便的取出前N条记录,但是Oracle里面却没有top的使用,类似实现取出前N条记录的简单方法如下: 方法1:利用ROW_NUMBER函数 取出前
    原文地址为:
    Oracle取TOP N条记录
    

    在SQL Server里面有top关键字可以很方便的取出前N条记录,但是Oracle里面却没有top的使用,类似实现取出前N条记录的简单方法如下:

    方法1:利用ROW_NUMBER函数

    取出前5条记录:

    SELECT NO FROM (
    SELECT ROW_NUMBER() OVER (ORDER BY NO) RNO, NO FROM ROWNUM_TEST
    )WHERE RNO <= 5 ORDER BY NO ;

    取出中间5条记录:

    SELECT NO FROM (
    SELECT ROW_NUMBER() OVER (ORDER BY NO) RNO, NO FROM ROWNUM_TEST
    ) WHERE RNO BETWEEN 5 AND 10 ORDER BY NO;

     

    方法2:利用子查询

    取出前5条记录:

    SELECT NO FROM (
    SELECT NO FROM ROWNUM_TEST ORDER BY NO
    )WHERE ROWNUM <= 5 ORDER BY NO ;

    取出中间5条记录:

    SELECT NO  FROM (
    SELECT NO, ROWNUM RNO FROM (
    SELECT NO FROM ROWNUM_TEST ORDER BY NO
    )
    ) WHERE RNO BETWEEN 5 AND 10 ORDER BY NO;

      

     

     

    转载请注明本文地址: Oracle取TOP N条记录
    展开全文
  • 方式:结果集相减 SELECT column1, column2 FROM (SELECT * FROM table_name ORDER BY order_column DESC ) WHERE ROWNUM<=2 MINUS SELECT column1, column2 FROM (SELECT * FROM table_name ORDER BY order...
  • Oracle两表关联,只B表的第一条记录 前言   A表、B表两表关联,关联出来的结果里B表有不止一,需求是只要B表结果中的某一(按某字段排序)。   首先想到了直接写个带排序的子查询去匹配外围的值,从这个结果...
  • oracle 前10条记录

    2018-06-29 17:30:00
    --(1)第一种 select * from t_base_employee where rownum < 11; --(2)第二种 select * from (select * from t_base_employee t order by t.modify_time desc) where rownum <= 10; ...
  • oracle 查询条记录

    万次阅读 2014-08-18 16:54:13
    方法: select * from (select * from ss ORDER BY CANTIME desc ) where rownum minus select * from (select * from ss ORDER BY CANTIME desc ) where rownum
  • Oracle取查询结果第一条记录SQL

    千次阅读 2014-07-18 15:02:13
    Oracle取查询结果第一条记录SQL select * from ( select e.id,e.filename,e.status,e.version,e.url,e.file_type, (select max(e.version) from eig_upload e where e.file_type = 1 and e.game_id = '...
  • oracle取最新一条数据

    万次阅读 2019-05-20 17:53:40
    最近在做个项目,数据库就是用的oracle,正好有个获取最新一条数据的需求。 在网上参考了他人的sql,放在自己这儿就是不行。下边是他们的sql SELECT * FROM ( SELECT *,ROWNUM rn FROM t ORDER BY date_col DESC ...
  • Oracle取查询结果数据的第一条记录SQL: select * from (select * from <table> order by <key>) where rownum=1; select * from (select * from <table> order by <key> desc) where ...
  • 最近项目中的一条sql语句涉及到取一个表中相同工单编码中最新的一条数据,在网上看到函数完美解决此问题,如下是内容要点: 问题:在项目中有一张设备检测信息表DEVICE_INFO_TBL, 每个设备每天都会产生一条检测...
  • 将表按照COLUMN1分组,并在组内按COLUMN3进行升序排序,选择分组排序后每组的第一条记录 SELECT * FROM (SELECT COLUMN1, COLUMN2, ROW_NUMBER() OVER(PARTITION BY COLUMN1 ORDER BY COLUMN3 ASC) ROWNO FROM ...
  • oracle取出每个分组的第一条记录

    千次阅读 2017-07-20 20:23:17
    取出每个分组的第一条记录sql
  • oracle查询:取出每组中的第一条记录

    千次阅读 2017-03-29 09:36:19
    Oracle查询:取出每组中的第一条记录 按type字段分组,code排序,取出每组中的第一条记录方法一:select type,min(code) from group_info group by type;注意:select 后面的列要在group by 子句中,或是用聚合函数...
  • Oracle分页查询格式: 例如查询10页到20页数据 SELECT * FROM ( SELECT ROWNUM AS rowno, t.* FROM emp t WHERE ROWNUM <= 20) TableA WHERE TableA.rowno >= 10; 参考文章 ......
  • oracle 分组后每组第一条数据

    千次阅读 2017-05-25 15:20:10
    因为项目中需要将结果集中的相同分组中的数据在组内排序然后再分别取出每个分组的第一条记录,所以研究了下 ROW_NUMBER() OVER(PARTITION BY x ORDER BY y DESC) ...分组取第一条的效果 sql  
  • 最近有个有个业务需求(springboot项目集合mybatis):需要查询分组后,每组的第一条数据(oracle数据库),可以在业务代码中实现,但是过于繁琐,后来查阅oracle的函数,得出仅仅在sql中即可实现,非常简洁,简化...
  • ORACLE中的查询结果只取第一条

    千次阅读 2020-03-12 18:39:17
    简单易学的方式: 原有的SQL不需要变化,只需在原来的SQL外加一层查询条件即可: SELECT * FROM ( SELECT * FROM 表名 ) WHERE ROWNUM = 1 括号中即为查询所有的...将SQL放入括号中 即可获取到结果集中的第一条 ...
  • Oracle左连接返回多条记录中一条记录的查询语句,更具指定条件分组排序,返回各组中第一条记录
  • 当前有这样个需求,根据外键对子表数据进行分组,每组中的一条数据就行了,如图: 如:COMMANDID = 26的有两,只取一条数据。 sql语句: select * from(select SYSTEMID,COMMANDID,SUBTYPE,LIST...
  • oracle针对多数据只最新一条的sql

    千次阅读 2020-10-29 14:36:54
    在针对某个类型数据存在多时,但只想最新的一条。在可以确定时哪种类型时我们使用简单sql就可以解决。 如: select * from ( select * from t_table a where a.tpye=? order by a.time desc ) where rownum=1;...
  • Oracle分组取第一条数据

    千次阅读 2014-12-11 12:03:24
    对多数据进行分组排序后每组第一条记录   SQL代码: SELECT*  FROM(SELECT ROW_NUMBER() OVER (PARTITION BY ORDER BYDESC)LEV,.* FROM)   WHERE LEV =1   ORDER BYDESC  --分组列 -- 排序列 --...
  • 电表,大家都知道电表读数并不是真正的耗电量,真正耗电量=此次读数-上次读数 电表设计如下: SQL语句如下,使用Oracle的FIRST_VALUE()和LAST_VALUE()函数实现: SELECT DISTINCT LAST_VALUE (E_VALUE) ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 71,364
精华内容 28,545
关键字:

oracle取第一条记录