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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。