27,581
社区成员
发帖
与我相关
我的任务
分享select a.Uid,a.Lid,a.Cdt,(select TOP 1 Cdt from #tb where Uid=a.Uid and Cdt<a.Cdt)Pdt from #tb a

CREATE INDEX IX_#tb ON #tb(Uid,Cdt DESC)
SELECT * FROM #tb AS a OUTER APPLY(SELECT TOP 1 Cdt FROM #tb WHERE Uid=a.Uid AND Cdt<=a.Cdt ORDER BY Cdt DESC) AS b
SELECT * FROM #tb AS a CROSS APPLY(SELECT MAX(Cdt) AS Cdt FROM #tb WHERE Uid=a.Uid AND Cdt<=a.Cdt) AS b
--1、
;WITH CTET
AS
(SELECT *,ROW_NUMBER()OVER(PARTITION BY UserID ORDER BY ListingID) AS RN FROM Tab
)
SELECT a.*,b.CreatedDT AS PreCreatedDT FROM CTET AS a INNER JOIN CTET AS b ON a.UserID=b.UserID AND a.RN=b.RN+1
--2、
SELECT *,(SELECT SUM(sale) FROM Tab WHERE id=a.id AND date<=a.date) FROM Tab AS a
--1、
SELECT *,LAG(CreatedDT)OVER(PARTITION BY UserID ORDER BY ListingID) AS PreCreatedDT FROM Tab
--2、
SELECT *,SUM(sale)OVER(PARTITION BY id ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM Tab