КодT-SQL | Найти кратные (с закруткой ?!)
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
Спасибо
Хорошо, только вы тоже поддержали :) – Shiva
Логика в создании этого запроса довольно больна. Благодарю. так как я немного разбираюсь в этом запросе, если мне нужно сделать ValA = A установленным как 0 для IsMultiple, как бы мне это изменить? (глядя на индивидуальную агрегацию fx's). – 007
рейтинг fx's *: D – 007