Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Группировка по сумме  [new]
Arsave
Member

Откуда: Волжский
Сообщений: 235
Необходимо из таблицы [табВысоты] с такими данными

id Высота
--------------
1 180
2 540
3 148
4 180
5 180
6 555
7 360
8 360
9 360
10 720
11 180
12 127
13 180
14 180
15 180

получить таблицу [табСгруппированная] с такими

id Высота
-------------
1 720
2 720
3 720
4 720
5 720
6 148
7 555
8 127

т.е. сгруппировать записи, сумма Высот которых = 720.
т.е. (180+540), (180+180+360), (360+360), (720), (180+180+180+180)

Можно ли это сделать одним запросом?
28 авг 09, 14:55    [7591196]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по сумме  [new]
Arsave
Member

Откуда: Волжский
Сообщений: 235
MS SQL 2005 EE
28 авг 09, 14:58    [7591215]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по сумме  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
а откуда в рез таблице вот ето ?
6 148
7 555
8 127
-------------------------------------
Jedem Das Seine
28 авг 09, 14:58    [7591218]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по сумме  [new]
Arsave
Member

Откуда: Волжский
Сообщений: 235
Maxx, это записи не попавшие в группировку - их как не суммируй 720 не получится.
28 авг 09, 15:02    [7591244]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по сумме  [new]

Guest

7 360
8 360
9 360


а как должен про суммироваться такой кусок ?
28 авг 09, 15:15    [7591322]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по сумме  [new]
Arsave
Member

Откуда: Волжский
Сообщений: 235
`ё, 7_360 уходит в группировку к 4_180 и 5_180, а 8_360 и 9_360 группируются друг с другом
28 авг 09, 15:18    [7591338]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по сумме  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
вы алгоритм то придумали, по которому это надо реализовывать? а то я ща накидаю кучу примеров, когда это не сработает.

для спящего время бодрствования равносильно сну
28 авг 09, 15:19    [7591354]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по сумме  [new]

Guest
я спрашиваю не про 5 строчек я спрашиваю про три строчки :)
28 авг 09, 15:20    [7591362]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по сумме  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
я спрашиваю не про 5 строчек я спрашиваю про три строчки :)

да там первые 2 суммируются. это понятно.
28 авг 09, 15:22    [7591375]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по сумме  [new]
Arsave
Member

Откуда: Волжский
Сообщений: 235
Алексей2003
вы алгоритм то придумали, по которому это надо реализовывать? а то я ща накидаю кучу примеров, когда это не сработает.

Поясните, пожалуйста, о каком алгоритме речь?
28 авг 09, 15:23    [7591396]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по сумме  [new]

Guest
а почему первые две ? почему не последние 2? вот пускай автор нам скажет - тогда и посмотрим
28 авг 09, 15:24    [7591402]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по сумме  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
ну вот такие строки как группировать?
180
180
360
540
540
знаете какой процент отклонения без перебирания всех вариантов?

для спящего время бодрствования равносильно сну
28 авг 09, 15:25    [7591407]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по сумме  [new]
Arsave
Member

Откуда: Волжский
Сообщений: 235
я спрашиваю не про 5 строчек я спрашиваю про три строчки :)

А, ну если бы была таблица
id Высота
------------
1 360
2 360
3 360

то результат нужен такой:
id Высота
------------
1 720
2 360
28 авг 09, 15:25    [7591410]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по сумме  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Arsave,

запрос должен сам подобрать нужное количество слагаемых, да?
Перебрать все возможные комбинации записей для этого?
И на чём остановиться при этом, интересно? Каков критерий?

Только не подумайте, что я своими вопросами Вас обнадёживаю... Отнюдь!
Совсем даже наоборот.

Остаётся надежда, что я неправильно понял задачу.
28 авг 09, 15:27    [7591420]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по сумме  [new]
Arsave
Member

Откуда: Волжский
Сообщений: 235
Алексей2003
ну вот такие строки как группировать?
180
180
360
540
540
знаете какой процент отклонения без перебирания всех вариантов?


Нужно чтобы по максимуму получилось 720-ок, т.е. результат
720
720
360
предпочтителен.
28 авг 09, 15:29    [7591437]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по сумме  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
сдаеться мне имено так задача и стоит
-------------------------------------
Jedem Das Seine
28 авг 09, 15:29    [7591438]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по сумме  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
Arsave
Алексей2003
ну вот такие строки как группировать?
180
180
360
540
540
знаете какой процент отклонения без перебирания всех вариантов?


Нужно чтобы по максимуму получилось 720-ок, т.е. результат
720
720
360
предпочтителен.

что для вас максимум?
28 авг 09, 15:30    [7591446]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по сумме  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
Алексей2003
Arsave
Алексей2003
ну вот такие строки как группировать?
180
180
360
540
540
знаете какой процент отклонения без перебирания всех вариантов?


Нужно чтобы по максимуму получилось 720-ок, т.е. результат
720
720
360
предпочтителен.

что для вас максимум?

сорри. чтото я через строчку прочитал.
SQL не предназначен особо для перебора всех ситуаций. делайте на клиенте.
28 авг 09, 15:31    [7591458]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по сумме  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
а такой вариант что вернуть должен?
540
180
90
90

для спящего время бодрствования равносильно сну
28 авг 09, 15:32    [7591471]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по сумме  [new]
Arsave
Member

Откуда: Волжский
Сообщений: 235
Алексей2003

что для вас максимум?

я имею ввиду сгруппировать записи таким образом, чтобы получилось наибольшее количество записей в результирующей таблице со значением 720. Хотя в принципе это предпочтительно, но не критично.
28 авг 09, 15:33    [7591476]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по сумме  [new]
.+-
Guest
я не знаю как кому, но мне это напоминает карточную игру "очко"
28 авг 09, 15:34    [7591488]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по сумме  [new]
Arsave
Member

Откуда: Волжский
Сообщений: 235
Алексей2003
а такой вариант что вернуть должен?
540
180
90
90


ну да, а количество остальных записей в результирующей таблице (<>720) должно быть минимальным, т.е. предпочтительный результат
720
180
28 авг 09, 15:36    [7591500]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по сумме  [new]

Guest
т.е. подойдет любой вариант суммирования ?
28 авг 09, 15:37    [7591508]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по сумме  [new]
Arsave
Member

Откуда: Волжский
Сообщений: 235
т.е. подойдет любой вариант суммирования ?

подойдет как "программа минимум"
28 авг 09, 15:38    [7591529]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по сумме  [new]

Guest
похоже так в общем виде цикл с рекурсией.... только как это делать...
28 авг 09, 15:38    [7591530]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить