zoukankan      html  css  js  c++  java
  • sql 分组后显示每组的前几条记录

    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是第二条记录,输出。逻辑很简单,但是看下解析之后还是很明白的。

  • 相关阅读:
    团队冲刺第五天
    每日学习
    团队冲刺第四天
    团队冲刺第三天
    每日学习
    2021.4.12
    2021.4.10
    2021.3.18
    2021.3.15
    2021.3.14
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/3722818.html
Copyright © 2011-2022 走看看