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

Sådan får du rækker med sum lig med given værdi

Det problem, du vil løse, kaldes undersætsummen problem. Desværre er den NP-komplet .

Det betyder, at uanset om du bruger SQL eller et andet sprog til at løse det, vil du kun være i stand til at løse meget små forekomster af problemet, dvs. dem med kun få indgange i tabellen. Ellers vil køretiden blive for lang, da den vokser eksponentielt med antallet af rækker i tabellen. Grunden til dette er, at der stort set ikke er nogen bedre måde at finde løsningen på end at prøve alle mulige kombinationer.

Hvis en omtrentlig løsning er acceptabel, er der en polynomisk tidsalgoritme, som er beskrevet på Wikipedia-siden.



  1. ResultSet.getTimestamp(date) vs ResultSet.getTimestamp(date, Calendar.getInstance(tz))

  2. Java Forberedt sætning udføres ikke

  3. 2 måder at oprette en database på en sammenkædet server ved hjælp af T-SQL

  4. Gør nogle ret basale summer med forskellige tabeller