J'ai 30 enregistrements dans un tableau ayant la colonne "numéro de boîte" et "poids". Je dois trouver 20 boîtes sur 30 boîtes dont la somme de poids est la plus proche de 1000 kg.Requête SQL pour trouver le poids total
Répondre
SQL Server:
select TOP 20 box_number
from t_boxes
group by box_number
order by ABS(SUM(box_weight) - 1000) ASC
Edit: Si j'ai mal compris votre question et vous voulez vraiment résoudre le problème de havresac. C'est quelque chose que vous devriez vraiment faire dans SQL, mais vous pouvez lire l'article this avec un nom très approprié: Et maintenant pour une utilisation complètement inappropriée de SQL Server.
Je vous suggère de lire sur le Knapsack problem
La façon dont vous résoudre ce dans SQL n'est pas recommandé, et peut même ne pas être possible sur une machine. Mais, vous pouvez exprimer la solution de la force brute comme:
select box1.id, box2.id, . . . ,
(box1.weight + box2.weight + . . .)
from box box1 join
box box2
on box2.id > box1.id join
box box3
on box3.id > box2.id join
box box4
on box4.id > box3.id
. . .
box box20
on box20.id > box19.id
order by abs(1000 - (box1.weight + box2.weight + . . .))
Le « sur » les conditions de garantie que vous cherchez à chaque série de boîtes une fois, commandés par leurs ids uniques. L'utilisation de "join" plutôt que "left join" garantit que vous vous retrouverez avec exactement 20 cases.
- 1. graphe - Comment trouver le cycle minimum dirigé (poids total minimum)?
- 2. SQL - requête par poids dynamiques
- 3. Cypher Requête - poids retour de chaque relation de correspondance avec poids total
- 4. requête SQL SELECT pour un total et pièces construction total
- 5. requête SQL Server pour trouver le prix total de tous les produits par ordre
- 6. requête SQL pour trouver le groupe
- 7. requête Sql pour obtenir diffrence de données total 2 tables
- 8. Comment obtenir poids total du panier prestashop
- 9. SQL pour trouver le nombre de produits expirés et le nombre total de produits par catégorie
- 10. requête Mysql pour calculer le coût total
- 11. commande SQL pour calculer à partir du montant et de l'ID, poids total:
- 12. Requête SQL pour un total de hits uniques
- 13. requête SQL pour un montant total entre la date Plage
- 14. trouver le nombre total d'enregistrements pour un endroit donné
- 15. SQL pour le nombre total et le nombre total dans lequel la condition est vraie
- 16. Trouver le pourcentage du total pour chaque article
- 17. Puzzle: trouver le nombre minimum de poids
- 18. Requête MySQL pour trouver le poids des arêtes dans un graphique
- 19. requête pour trouver résultat colocalisé SQL
- 20. requête SQL pour trouver checkins des amis
- 21. Sous-requête SQL pour trouver des doublons
- 22. Requête SQL pour trouver les tendances
- 23. Requête SQL pour trouver les enregistrements précédents
- 24. Requête SQL pour trouver l'employé aniversaire
- 25. Utilisation de SQL pour trouver le nombre total de clients avec plus de X commandes
- 26. SQL TOTAL ET GRAND TOTAL
- 27. requête SQL pour trouver les gagnants dans un concours
- 28. mysql requête basée sur le poids possible?
- 29. Requête SQL pour trouver Nième salaire le plus élevé
- 30. Requête SQL pour trouver le rôle de superset
Quel moteur sql utilisez-vous? BTW recherche pour «knapsack problème sql» pour certains conseils, car il ne sera pas trivial :) – biziclop
Im utilisant le serveur SQL –
Pourquoi avez-vous besoin d'utiliser SQL? Un langage de programmation est mieux adapté aux problèmes tels que celui-ci. Votre question manque [exemple de code] (http://sscce.org/) (ici, instructions SQL). Veuillez utiliser 'CREATE TABLE' et' INSERT ... VALUES' pour [samples] (http://weblogs.sqlteam.com/jeffs/archive/2008/05/13/question-needed-not-answer.aspx). Les résultats souhaités n'ont pas besoin d'être présentés comme un exemple de code, car les résultats sont la sortie du code et non le code eux-mêmes. – outis