SQL拾遗

前两天同事问了个SQL问题,有个出价记录表【针对不同拍品出价】,每个人都可以多次出价,要查下哪些拍品出价最高的人和出价次高的人是同一个人的记录,当时写了下面的SQL,今天先记下了,欢迎补充新的查询方式:

表结构如下:

       主键           拍品      出价人     出价

;WITH cte AS 
(SELECT 
num=RANK() OVER(PARTITION BY PublishId ORDER BY BidPrice DESC)
,bidlistid 
,PublishId
,BidderId
,BidPrice FROM AuctionBidRecordList where BidMode=3 )
select a.PublishId,a.BidderId,a.BidPrice,b.BidPrice from 
(SELECT * FROM cte WHERE num=1)a inner join  
(SELECT * FROM cte WHERE num=2) b on a.PublishId=b.PublishId and a.BidderId=b.BidderId
原文地址:https://www.cnblogs.com/mfkaudx/p/3567281.html