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

  • 相关阅读:
    v-for给img的src动态赋值问题
    关于vue+axios上传文件的踩坑分析
    关于nth-of-type和nth-child的关系
    关于fetch
    关于移动端适配
    golang变量作用域问题-避免使用全局变量
    grpc-gateway:grpc转换为http协议对外提供服务
    google的grpc在golang中的使用
    golang中的rpc包用法
    homebrew常用命令
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/3722818.html
Copyright © 2011-2022 走看看