sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man får rader med summa lika med givet värde

Problemet du vill lösa kallas delmängdsumman problem. Tyvärr är den NP-komplett .

Detta innebär att, oavsett om du använder SQL eller något annat språk för att lösa det, kommer du bara att kunna lösa mycket små instanser av problemet, det vill säga de med bara ett fåtal poster i tabellen. Annars kommer körtiden att bli överdriven, eftersom den växer exponentiellt med antalet rader i tabellen. Anledningen till detta är att det i princip inte finns något bättre sätt att hitta lösningen än att prova alla möjliga kombinationer.

Om en ungefärlig lösning är acceptabel finns det en polynomisk tidsalgoritm, som beskrivs på Wikipedia-sidan.



  1. Fel ORA-65048 vid ändring av användarlösenord i containerdatabasen (CDB)

  2. SQL konvertera datetime och subtrahera timmar

  3. node-postgres $1 ÄR NULL-fel

  4. MySQL Cross Table Constraint