sql 分组后显示每组的前几条记录

如   表中记录是   
          code       serialno   
          A1               1   
          A1               2   
          A1               3   
          A1               5   
    
          B1               2   
          B1               3   
          B1               4   
    
      我需要的结果是   表中   A1和B1的第2条记录.

select     
          a.code,a.serialno   
  from   
          (select   code,serialno,rownum   rid   from   表)   a,   
          (select   code,serialno,rownum   rid   from   表)   b   
  where   
          a.code=b.code   and   a.rid>=b.rid   
  group   by   
          a.code,a.serialno   
  having   count(*)=2
解析:对表中的记录利用rownum编号,然后利用两个子查询对同一条记录的编号相同的原理,统计code相同的记录存在几条编号小于等于当前编号的记录,如果 为2,则说明当前记录在表中对于相同的code是第二条记录,输出。逻辑很简单,但是看下解析之后还是很明白的。

sql 分组后显示每组的前几条记录的更多相关文章

  1. sql 用Group by分组后,取每组的前几条记录

    转自:http://blog.163.com/jeson_lwj/blog/static/135761083201052411115783/ --查询每门课程的前2名成绩 CREATE TABLE S ...

  2. 用Group by分组后,取每组的前3条记录,怎么取?

    使用子查询进行查询 SELECT * FROM home_content a WHERE ( SELECT count(id) FROM home_content WHERE class_link = ...

  3. sql 分组后重复数据取时间最新的一条记录

    1.取时间最新的记录 不分组有重复(多条CreateTime一样的都是最新记录) select * from test t where pid in ( select PId from Test t ...

  4. 从排序后的结果集中删除 前n条记录

    端午有人休息,有人忙 操作前数据: --从排序后的结果集中删除 前n条记录delete from emp where empno in (select empno                   ...

  5. MySQL取每组的前N条记录

    一.对分组的记录取前N条记录:例子:取前 2条最大(小)的记录 .用子查询: SELECT * FROM right2 a WHERE > (SELECT COUNT(*) FROM right ...

  6. mysql 分组统计、排序、取前N条记录解决方案

    需要在mysql中解决记录的分组统计.排序,并抽取前10条记录的功能.现已解决,解决方案如下: 1)表结构 CREATE TABLE `policy_keywords_rel` ( `id` int( ...

  7. 当前时间、前n天、后n天、取前n条记录、从第n条开始取m条

    当前时间:NOW() 前n天:DATE_SUB(NOW(),INTERVAL n DAY) 后n天:DATE_SUB(NOW(),INTERVAL -n DAY) 取前n条记录:SELECT * FR ...

  8. SQL 分组后获取每组中最大值

    场景:sql server 2008 drop table ID CREATE TABLE ID ( id ,) not null, code int , D date, PRIMARY KEY (i ...

  9. SQL 分组后,获取每组中的最大值对应的数据

    select gr,num,dt,(select bys from test where gr=b.gr and dt=b.dt) bys from ( select gr,count(0) num, ...

随机推荐

  1. Rspec: everyday-rspec实操: 第8章DRY. (6个方法,其中3个方法好上手)

    Don't Repeat Yourself. • 把操作步骤提取到辅助模块中;✅ • 通过let复用测试中的实例变量;✅ • 把通用的设置移到共享的情景中;⚠️(不喜欢) • 在RSpec和rspec ...

  2. 3-9《元编程》第3章Tuesday:methods

    第3章methods Ruby是动态语言,有静态语言实现不了的技巧.本章讲解代码的重构,把代码变得更简洁. 3.2Dynamic Methods 3.21Calling Methods Dynamic ...

  3. 浅浅的分析LED呼吸灯的实现和PWM的关系

    前言 在本周,我们在python课上做了一个实验,用ARDUINO使小LED灯模仿出呼吸灯的效果,实验进行的很成功,但是机器当仅输出高/低电平的时候是怎么样才能做到渐亮渐暗(输出电压)的变化呢?在这里 ...

  4. 查询(sqlSuger)

    查某一天的数据记录的条数 DateTime date1 = Convert.ToDateTime(DateTime.Now.ToShortDateString()); DateTime date2 = ...

  5. top k

    def top_k(arr, left, right, k): if left >= right: return pivot = arr[right] index = left for i in ...

  6. 标准库头文件 (CA2T)

    标准库中,CA2T,CA2W的头文件是: #include <atlstr.h>

  7. Delphi XE Starter Essentials 中文目录

    Table of Contents1. Delphi XE Starter IDE 1Delphi and C++Builder ................................... ...

  8. 返回书签 GotoBookmark

    property Bookmark: TBookmark read GetBookmark write GotoBookmark; 直接给Bookmark属性赋值,还是 调用数据集GotoBookma ...

  9. EhLib TitleButton SVisibleColumnsEh = '错误的列';

    unit EhLibConsts; interface resourcestring SClearSelectedCellsEh = '清除选择的单元?'; SInvalidTextFormatEh ...

  10. web项目中的路径问题

    “/”表示根路径 1.“/”代表的意思不是固定的,是要根据具体的方法,才能知道在该方法中"/"所代表的含义,同样相对路径也不是固定的,需要根据具体的方法来判断具体是相对哪个路径的相 ...