Das Problem entspricht dem Finden einer maximalen Übereinstimmung in einem zweiteiligen Diagramm . Jedes Spaltenelement repräsentiert einen Scheitelpunkt, jede Zeile repräsentiert eine Kante. Der verlinkte Wikipedia-Artikel liefert einige Hinweise auf Algorithmen zur Lösung dieses Problems. Es gibt eine Implementierung des ungarischen Algorithmus in der Or-Tools-Bibliothek von Google .
Hier ist das gegebene Beispiel als Graph formuliert, wobei die roten Kanten die gegebene Lösung darstellen:
Es würde mich überraschen, wenn Sie eine Lösung nur in SQL finden könnten.