/ / Partycjonowanie według liczby w SQL - sql-server, tsql, struktury danych

Partycjonowanie według liczebności w SQL - sql-server, tsql, struktury danych

Ten problem dotyczy pytania, które zadałem tutaj. Mam stół, który wygląda następująco:

Item    Count
1       1
2       4
3       8
4       2
5       6
6       3

Muszę zgrupować elementy, które są na przykład mniejsze niż 5, w nową grupę, a suma każdej grupy powinna wynosić co najmniej 5. Wynik powinien wyglądać następująco:

Item    Group   Count
1       1       1
2       1       4
3       2       8
4       3       2
5       4       6
6       3       3

Jak to osiągnąć? Wielkie dzięki.

Odpowiedzi:

2 dla odpowiedzi № 1

Dlaczego nie jest to poprawny wynik?

Item    Group   Count
1       1       1
2       2       4
3       3       8
4       4       2
5       5       6
6       1       3

Albo to?

Item    Group   Count
1       1       1
2       2       4
3       3       8
4       4       2
5       5       6
6       6       3

Wydaje mi się, że próbujesz rozwiązać problemodpowiedz „jak pogrupować elementy, aby zminimalizować liczbę grup i zmaksymalizować liczbę elementów w każdej grupie, bez przekroczenia limitu 5”. Co brzmi bardzo podobnie Problem plecakowy. Być może powinieneś przeczytać Celko SQL Stumper: problem z planowaniem zajęć i proponowane rozwiązania. Inni również podeszli do tego problemu, np. A teraz całkowicie niewłaściwe korzystanie z SQL Server. Uwaga: w żadnym wypadku nie jest to trywialny problem. Każdy naiwny algorytm umrze powolną śmiercią, próbując go rozwiązać na tabeli 1M wierszy ...