sql >> Database >  >> RDS >> Sqlserver

Hoe rijen te krijgen met een som die gelijk is aan de gegeven waarde

Het probleem dat je wilt oplossen heet de subset sum probleem. Helaas is het NP-complete .

Dit betekent dat, of u nu SQL of een andere taal gebruikt om het op te lossen, u alleen zeer kleine gevallen van het probleem kunt oplossen, d.w.z. die met slechts een paar vermeldingen in de tabel. Anders wordt de runtime overdreven, omdat deze exponentieel groeit met het aantal rijen in de tabel. De reden hiervoor is dat er in wezen geen betere manier is om de oplossing te vinden dan door alle mogelijke combinaties te proberen.

Als een benaderende oplossing acceptabel is, is er een polynomiaal tijdalgoritme, dat wordt beschreven op de Wikipedia-pagina.



  1. dag weergeven via opgeslagen procedure

  2. Entiteitskadercode is traag wanneer Include() vaak wordt gebruikt

  3. SQL Tel dagen tot de eerste van de maand

  4. Hoe de som van de hoeveelheid producten van een specifieke datum te krijgen?