SQL 對結果集進行分組排序過濾重複數據 ROW_NUMBER

簡單的表操做:spa

select row_number() over(partition by A.gid order by A.gid  ) as RowN, A.* from Fit_Order A 

關聯表操做code

select * from ( select   row_number() over(partition by GID order by gid ASC) as RowN, *
 from (select A.*,B.* from Fit_Order A INNER JOIN  Fit_OrderDetail  (nolock) B ON A.Gid=B.OrderGid ) AS BB where BB.OrderType='銀聯支付' ) TT where TT.RowN=1

With AS 子查詢 遞歸CTE 方式blog

 WITH TemGid AS ( select  A.Gid  from Fit_Order(nolock) A  Where   A.OrderType='銀聯支付' ) SELECT  * FROM ( SELECT ROW_NUMBER() OVER(PARTITION BY BB.ShopPreGid ORDER BY BB.ShopPreGid ASC ) AS Row_Num,* 
                FROM( select  A.Gid AS ShopPreGid ,A.CreateDate, B.DetailStatus FROM ( SELECT * FROM Fit_Order(nolock)  WHERE Gid IN (SELECT * FROM TemGid )) A inner join  Fit_OrderDetail  (nolock) B ON A.Gid=B.OrderGid)AS BB WHERE BB.DetailStatus!='已完成'  ) TT WHERE  TT.Row_Num=1
相關文章
相關標籤/搜索