我要实现的功能是统计订单日志表中每一个订单的前三条日志记录,表结构如下:

一个订单在定点杆日志表中有多条记录,要根据时间查询出每一个订单的前三条日志记录,sql如下:

 select b.OrderNumber,b.creationtime,b.remark  FROM
(
SELECT a.OrderNumber,a.CreationTime,a.Remark
FROM [FortuneLabFord].[dbo].[SO_Log] a
where a.SysId IN
(
select TOP 3 SysId from [FortuneLabFord].[dbo].[SO_Log]
where a.OrderNumber = SO_Log.OrderNumber ORDER BY a.CreationTime DESC
)
) b
group BY b.OrderNumber,b.creationtime,b.remark
ORDER BY b.OrderNumber

思路是:先在内层根据CreationTime做排序,然后再自关联一下本身的表,根据主键关联,然后对结果集做分组和排序,这样就能保证同一个订单的三条记录都排在一起

这种查询方法适用于表中有唯一性标识的字段,如果没有唯一性标识的字段就不能这么查了。

SQL实现分组查询取前几条记录的更多相关文章

  1. MySQL中的RAND()函数使用详解(order by rand() 随机查询取前几条记录)

    MySQL RAND()函数调用可以在0和1之间产生一个随机数: mysql> SELECT RAND( ), RAND( ), RAND( ); +------------------+--- ...

  2. MSSQL—按照某一列分组后取前N条记录

    以前在开发的时候遇到过一个需求,就是要按照某一列进行分组后取前几条数据,今天又有同事碰到了,帮解决了之后顺便写一篇博客记录一下. 首先先建一个基础数据表,代码如下: IF OBJECT_ID(N'Te ...

  3. mysql使用GROUP BY分组实现取前N条记录的方法

    MySQL中GROUP BY分组取前N条记录实现 mysql分组,取记录 GROUP BY之后如何取每组的前两位下面我来讲述mysql中GROUP BY分组取前N条记录实现方法. 这是测试表(也不知道 ...

  4. [转] 分组排序取前N条记录以及生成自动数字序列,类似group by后 limit

    前言:        同事的业务场景是,按照cid.author分组,再按照id倒叙,取出前2条记录出来.        oracle里面可以通过row_number() OVER (PARTITIO ...

  5. Sql语句groupBY分组后取最新一条记录的SQL

    一.问题 groupBY分组后取最新一条记录的SQL的解决方案. 二.解决方案 select Message,EventTime from PT_ChildSysAlarms as a where E ...

  6. oracle 取前10条记录

    1.oracle 取前10条记录 1) select * from tbname where rownum < 11; 2) select * from (select * from tbnam ...

  7. Oracle 取前几条记录

    今天看了篇文章,对oracle取前几条数据的方式和说明,总结比较全,学习了,做个记录点.oracle 取前10条记录 以下内容是原始文章内容,用于做留存阅读. 1.oracle 取前10条记录 1) ...

  8. MySql多表关联,根据某列取前N条记录问题

    近来遇到一个问题:“MySql多表关联,根据某列取前N条记录”. 刚开始一直在想,SQL语句是否可以做到直接查询出来,但几经折磨,还是没能写出SQL语句,-------如果有大牛的话,望指点迷津.我把 ...

  9. ORACLE/MYSQL/DB2等不同数据库取前几条记录

    选取数据库中记录的操作是最基础最频繁的,但往往实际应用中不会这么简单,会在选取记录的时候加上一些条件,比如取前几条记录,下面就总结了如何在ORACLE/MYSQL/DB2等一些热门数据库中执行取前几条 ...

随机推荐

  1. Android 代码混淆、第三方平台加固加密、渠道分发 完整教程(图文)

    第一步:代码混淆(注意引入的第三方jar) 在新版本的ADT创建项目时,混码的文件不再是proguard.cfg,而是project.properties和proguard-project.txt. ...

  2. mybatis热加载的实现

    最近在使用mybatis,由于是刚刚开始用,用的并不顺手,目前是感觉有2个地方非常的不好用: 1.mybatis调试不方便 由于dao层只有接口,实现只是一个map的xml文件,想加断点都没有地方加, ...

  3. Android开发:第五日番外——过时的函数和被横杠的函数

    零.... 好吧,估计以后每篇都会来个零开头进行吐槽了.话说第五日正番依旧难产中,先把番外给写了.番外嘛都是一些小的知识点,未免遗忘,特此记录.今天发现关于设计模式,本人零概念啊,这是什么概念啊,虽然 ...

  4. 查看SqlAzure和SQLServer中的每个表数据行数

    SqlAzure中的方式: select t.name ,s.row_count from sys.tables t join sys.dm_db_partition_stats s ON t.obj ...

  5. Visual Studio 新建项目报错" this template attempted to load component assembly 'NuGet.VisualStudio.Interop, ….".

    "Error: this template attempted to load component assembly 'NuGet.VisualStudio.Interop, Version ...

  6. 实现仿知乎的开场动画,图片zoomin的效果,实现原理,没加动效

    知乎等应用的开场动画是:全屏显示一副图像,并以图像的中间为原点,实现放大(也就是zoomin)的动画,让等待的过程不再单调乏味. 最近不是很忙,因此想了下如何实现这种效果,方案是:采用调整imagev ...

  7. Xcode 8 新特性

    在2016 苹果全球开发者大会(WWDC)期间, 苹果一如既往地给开发者们披露了新版的集成开发工具 – Xcode, 在过去的每一次大版本发布中,苹果都会积极地改进开发工具,添加一些极具吸引力的新功能 ...

  8. js-2

    var myarray= new Array(); var myarray= new Array(8); var myarray= new Array(66,80,60,59,70); var mya ...

  9. xcode 插件之KSImageNamed-Xcode

    https://github.com/ksuther/KSImageNamed-Xcode 好用,各位记得安装啊

  10. 数据库同步工具HKROnline SyncNavigator SQL Server互同步MySQL

    需要联系我QQ:786211180 HKROnline SyncNavigator 是一款专业的 SQL Server, MySQL 数据库同步软件.它为您提供一种简单智能的方式完成复杂的数据库数据同 ...