Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como remover associações duplicadas para gerar um conjunto exclusivo mais completo


O problema é equivalente a encontrar uma correspondência máxima em um gráfico bipartido . Cada elemento de coluna representa um vértice, cada linha representa uma aresta. O artigo vinculado da Wikipedia fornece algumas dicas para algoritmos para resolver esse problema. Há uma implementação do algoritmo húngaro na biblioteca or-tools do Google .

Aqui está o exemplo dado formulado como um gráfico, com as bordas vermelhas representando a solução dada:



Seria surpreendente para mim se você pudesse encontrar uma solução puramente em SQL.