22,209
社区成员
发帖
与我相关
我的任务
分享
;WITH CTE AS(
SELECT *
,ROW_NUMBER()OVER(PARTITION BY 字段1 ORDER BY ID)RN1
,ROW_NUMBER()OVER(PARTITION BY 字段2 ORDER BY ID)RN2
,ROW_NUMBER()OVER(PARTITION BY 字段3 ORDER BY ID)RN3
,ROW_NUMBER()OVER(PARTITION BY 字段4 ORDER BY ID)RN4
FROM TB
)
,CTE2 AS(
SELECT ID
,COUNT(1)OVER(PARTITION BY ID-RN1,字段1)C1
,COUNT(1)OVER(PARTITION BY ID-RN2,字段2)C2
,COUNT(1)OVER(PARTITION BY ID-RN3,字段3)C3
,COUNT(1)OVER(PARTITION BY ID-RN4,字段4)C4
FROM CTE
)
SELECT TOP 1 * FROM CTE2
ORDER BY ID DESC
修复之前的,
然后,按倒的就用DESC TOP1 ~~;WITH CTE AS(
SELECT ID
,ROW_NUMBER()OVER(PARTITION BY 字段1 ORDER BY ID)RN1
,ROW_NUMBER()OVER(PARTITION BY 字段2 ORDER BY ID)RN2
,ROW_NUMBER()OVER(PARTITION BY 字段3 ORDER BY ID)RN3
,ROW_NUMBER()OVER(PARTITION BY 字段4 ORDER BY ID)RN4
FROM TB
)
,CTE2 AS(
SELECT ID
,COUNT(1)OVER(PARTITION BY ID-RN1)C1
,COUNT(1)OVER(PARTITION BY ID-RN2)C2
,COUNT(1)OVER(PARTITION BY ID-RN3)C3
,COUNT(1)OVER(PARTITION BY ID-RN4)C4
FROM CTE
)
SELECT * FROM CTE2
WHERE ID=1