Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come ottenere righe con somma uguale al valore dato

Il problema che vuoi risolvere si chiama subset sum problema. Sfortunatamente, è NP-complete .

Ciò significa che, indipendentemente dal fatto che utilizzi SQL o qualsiasi altro linguaggio per risolverlo, sarai in grado di risolvere solo istanze molto piccole del problema, ovvero quelle con solo poche voci nella tabella. In caso contrario, il tempo di esecuzione diventerà eccessivo, poiché cresce in modo esponenziale con il numero di righe nella tabella. La ragione di ciò è che essenzialmente non c'è modo migliore per trovare la soluzione che provare tutte le possibili combinazioni.

Se una soluzione approssimativa è accettabile, esiste un algoritmo del tempo polinomiale, descritto nella pagina di Wikipedia.