CREATE TABLE #Temp (ValA varchar(10) NULL, FK_ID int)
INSERT INTO #Temp
SELECT 'A',1
UNION ALL
SELECT 'A',1
UNION ALL
SELECT 'A',1
UNION ALL
SELECT 'A',2
UNION ALL
SELECT 'B',1
UNION ALL
SELECT 'B',2
UNION ALL
SELECT 'C',1
UNION ALL
SELECT 'C',1
UNION ALL
SELECT 'C',1
SELECT
ValA
, FK_ID
, CASE WHEN COUNT(*) OVER (PARTITION BY ValA, FK_ID) > 1 THEN 1
ELSE 0
END IsMultiple
FROM #Temp
DROP TABLE #Temp
电流输出
ValA FK_ID IsMultiple
A 1 1
A 1 1
A 1 1
A 2 0
B 1 0
B 2 0
C 1 1
C 1 1
C 1 1
所需的输出
ValA FK_ID IsMultiple
A 1 1
A 1 1
A 1 1
A 2 **1**
B 1 0
B 2 0
C 1 1
C 1 1
C 1 1
目标 我想找到瓦拉和FK_ID分割倍数但对于那些ValA正在重复并且至少有2个FK_ID正在重复的情况(至少有另外一个没有),我希望那些t o被标记为1(IsMultiple)。
即瓦拉 - 一个有4条,其中3条具有相同FK_ID但一个不同FK_ID,整套应标记为IsMultiple = 1
谢谢
好的,只是upvoted你:) – Shiva
逻辑去创造这个查询是非常恶心。谢谢。因为我很努力地理解这个查询,如果我必须使ValA = A为IsMultiple的0,我将如何去改变它? (看着个人聚合fx的..) – 007
排名fx的*:D – 007