PortPair caspid por POD teu ton
P1-P2 5 P1 P2 9 5000
P3-P4 5 P3 P4 10 5500
P1-P2 4 P1 P2 7 4000
P1-P2 3 P1 P2 5 3000
P3-P4 3 P3 P4 6 3500
P3-P4 2 P3 P4 7 4500
P1-P2 1 P1 P2 3 2500
这里我有一张桌子,我想得到每个PortPair前2个记录的输出。 out put就像下面的
Por pod PortPair caspID teu ton
P1 P2 P1-P2 5 9 5000
P1 P2 P1-P2 4 7 4000
P3 P4 P3-P4 5 10 5500
P3 P4 P3-P4 3 6 3500
没有想到如何查询我的输出表..
任何人都可以帮忙
答案 0 :(得分:1)
试试这个
;WITH cte AS
(
SELECT
ROW_NUMBER() OVER(PARTITION BY PortPair ORDER BY CASPID DESC ) AS rno,
Por ,
pod,
PortPair,
caspID ,
teu ,
ton
FROM tableName
}
SELECT Por , pod, PortPair, caspID , teu , ton
FROM cte
WHERE rno<=2
根据您的partitioning
和pair
,我们ordering
基于适当的列按降序排列。这样我们就可以选择前两对了。