Problemet motsvarar att hitta en maximal matchning i en tvådelad graf . Varje kolumnelement representerar en vertex, varje rad representerar en kant. Den länkade Wikipedia-artikeln ger några tips på algoritmer för att lösa detta problem. Det finns en implementering av den ungerska algoritmen i Googles or-tools-bibliotek .
Här är det givna exemplet formulerat som en graf, där de röda kanterna representerar den givna lösningen:
Det skulle vara förvånande för mig om du kunde hitta en lösning enbart i SQL.