SQL实现分组查询取前几条记录
时间:2021-07-01 10:21:17
帮助过:2人阅读
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实现分组查询取前几条记录
标签: