Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Алгоритм распределения строк / 4 сообщений из 4, страница 1 из 1
19.12.2017, 14:35
    #39572030
Foxter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм распределения строк
Здравствуйте. Прошу эту задачу воспринимать как абстрактную.

Дано:

1. Набор N записей (#1)
2. Набор N записей (#2)

Необходимо:

Для записей из набора 2 пропорционально распределить значения набора 1.

Пример:

1 набор - 3 записи со структурой (a,b,c)
2 набор - 7 записей со структурой ((a) null, (b) null, (c) null)

Необходимо null во втором наборе пропорционально заполнить значениями из набора 1. В наборе 1 a,b,c - уникальны. Не могу нащупать алгоритм )) То есть как-то надо организовать вложенные циклы (внешний по кол-ву записей 1) и внутренний по количеству (7/3), но вот как это сделать практически - ума не приложу.
...
Рейтинг: 0 / 0
19.12.2017, 14:54
    #39572050
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм распределения строк
Каждая запись из набор 1 присваивается набор 2 TRUNC(N2 / N1) раз + 1 eсли ROW_NUMBER(набор 2) <= MOD(N2,N1) и никакой PL/SQL не нужен.

SY.
...
Рейтинг: 0 / 0
19.12.2017, 16:21
    #39572137
Foxter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм распределения строк
SYКаждая запись из набор 1 присваивается набор 2 TRUNC(N2 / N1) раз + 1 eсли ROW_NUMBER(набор 2) <= MOD(N2,N1) и никакой PL/SQL не нужен.

SY.

То есть можно решить запросом?

SY...ется набор 2 TRUNC(N2 / N1) раз + 1 eсли ROW_NUMBER(набор 2) <= MOD(N2,N1) и никакой PL/SQL не нужен.

SY.

А здесь вы что имели ввиду?
...
Рейтинг: 0 / 0
19.12.2017, 16:44
    #39572161
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм распределения строк
Foxter
А здесь вы что имели ввиду?

В наборе 1 имеем 3 записи а в наборе 2 семь. Каждую строку наборa 1 присваиваем набору 2 TRUNC(7 / 3) = 2 раза a первую -
MOD(7,3) = 1 строку наборa 1 присваиваем набору 2 три раза. Получаем:

набор 2 строкa 1 = набор 1 строкa 1
набор 2 строкa 2 = набор 1 строкa 2
набор 2 строкa 3 = набор 1 строкa 3
набор 2 строкa 4 = набор 1 строкa 1
набор 2 строкa 5 = набор 1 строкa 2
набор 2 строкa 6 = набор 1 строкa 3
набор 2 строкa 7 = набор 1 строкa 1

На форуме несколько раз пробегало - ищи.

SY.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Алгоритм распределения строк / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]