У меня есть таблица псевдонимов, связанных со значениями. Мне нужно найти повторяющиеся псевдонимы с уникальными идентификаторами записей.
Чтобы было понятнее, вот таблица:
ID Alias Value
---------------------
1 000123 3
2 000123 3
3 000234 4
4 000123 3
5 000345 5
6 000345 5
Результатом запроса к этой таблице должно быть что-то вроде
ID Alias Value1 Value2
---------------------------------------
1 000123 3 3
2 000123 3
3 000234 4 4
4 000123 3
5 000345 5 5
6 000345 5
В настоящее время я использую EXCEL для обходного пути:
=IF(COUNTIF($F$2:$F109889, $F109889)=1, $I109889, "")
Alias -- Value1 Value2
---------------------------------------
16986 1231 2639.26 2639.26
16986 1231 2639.26
16986 1231 2639.26
16986 1231 2639.26
16986 1231 2639.26
16986 1231 2639.26
16986 1231 2639.26
16986 1231 2639.26
16986 1231 2639.26
16986 1231 2639.26
Но из-за большого количества записей (около 200 тыс. строк) иногда мой ноутбук зависает более часа.
Есть ли какие-нибудь решения, которые будут работать лучше?
Я пытаюсь сделать отчет на SQL Server, а не в Excel.
SELECT
ID
,Alias
,Value1 = Value
,Value2 = IIF(COUNT(*)OVER(PARTITION BY Alias
ORDER BY ID
ROWS UNBOUNDED PRECEDING) = 1
,Value
,NULL )
,Value2_2 = IIF(COUNT(*)OVER(PARTITION BY Alias
ORDER BY ID
ROWS UNBOUNDED PRECEDING) = 1
,FORMAT(Value,'0')
,'' )
FROM (VALUES
(1, '000123', 3)
,(2, '000123', 3)
,(3, '000234', 4)
,(4, '000123', 3)
,(5, '000345', 5)
,(6, '000345', 5)
)v(ID, Alias, Value)
ORDER BY ID
Тк! С вашей помощью у меня все получилось!!!
@Dale K Готово, только что узнал.
Почему возникает дополнительная ценность
4
для000234
? Будет ли у вас более одной строки дубликатов? Как вы хотите получить результат в таком случае?