Eu tenho um banco de dados de organizações do SQL Server e há muitas linhas duplicadas. Desejo executar uma instrução select para capturar tudo isso e a quantidade de enganos, mas também retornar os IDs associados a cada organização.
Uma declaração como:
SELECT orgName, COUNT(*) AS dupes
FROM organizations
GROUP BY orgName
HAVING (COUNT(*) > 1)
Retornará algo como
orgName | dupes
ABC Corp | 7
Foo Federation | 5
Widget Company | 2
Mas eu também gostaria de pegar os IDs deles. Há alguma maneira de fazer isso? Talvez como um
orgName | dupeCount | id
ABC Corp | 1 | 34
ABC Corp | 2 | 5
...
Widget Company | 1 | 10
Widget Company | 2 | 2
O motivo é que também há uma tabela separada de usuários vinculados a essas organizações, e eu gostaria de unificá-los (portanto, remova os dupes para que os usuários se vinculem à mesma organização em vez de dupe orgs). Mas gostaria de fazer parte manualmente para não estragar nada, mas ainda assim precisaria de uma declaração retornando os IDs de todas as organizações duplas para que eu possa percorrer a lista de usuários.