字段 编号 订单号 其他
1 111 。。
2 111 。。
3 111 。。
4 222 。。
5 222 。。
6 222 。。
7 333 。。
8 333 。。
9 444 。。
10 444 。。
11 555 。。
12 555 。。
13 666 。。
14 666 。。
15 777 。。
16 777 。。
17 888 。。
18 888 。。
如需要查询出最近五条记录,同时不需要重合的
字段 编号 订单号 其他
7 333 。。
9 444 。。
11 555 。。
13 666 。。
15 777 。。
17 888 。。
------解决思路----------------------
select top 5 [编号],[订单号],[其它] from
(
SELECT ROW_NUMBER()OVER(PARTITION BY [订单号] ORDER BY [编号])RN,[编号],[订单号],[其它] FROM 表
)T
WHERE
T.RN=1
ORDER BY
T.[订单号]
你参考一下,看是不是这样子
------解决思路----------------------
2樓的方法是正確的,另寫一個方法
select a.* from tablename a ,
(select top 5 订单号,min(编号) as ID from tablename group by 订单号 order by min(编号) desc) as b
where a.订单号=b.订单号 and a.编号=b.ID
------解决思路----------------------
with B as
(
select ID,ordernumber,ROW_NUMBER() over (partition by ordernumber order by ID) as RN from A
)
select top 5 ID,ordernumber from B where RN = 1 order by ordernumber desc
------解决思路----------------------
亲测可用
with cte as (
select *,ROW_NUMBER()OVER(PARTITION BY [订单号] ORDER BY [编号]) as ID
from tabname
)
select top 5 [编号],[订单号],[其它]
from cte
where id = 1
order by [订单号] desc