powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Все возможные сочетания записей
21 сообщений из 46, страница 2 из 2
Все возможные сочетания записей
    #39302850
fetisof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
982183,

ну потому что надо так как я написал и никак иначе.

вы же, например, когда в магазин приходите за буханкой ржаного хлеба, вам не суют батон, типа бери что мы даем.
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39302852
xenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги,
я очень надеюсь, что кто-то понял задачу автора и хочет/может объяснить ее по-другому, т.к. я пока не могу понять: сложности в получении искомого набора данных или в его сортировке
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39302855
j2k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bishnike, не заметил "последние вводные" :)

fetisof, а можно еще пример для

typ codЦвет1 ААЦвет2 ББЦвет2 ВВЦвет3 ГГЦвет3 ДДЦвет3 ЕЕЦвет3 ЖЖ
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39302862
j2k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xenixКоллеги,
я очень надеюсь, что кто-то понял задачу автора и хочет/может объяснить ее по-другому, т.к. я пока не могу понять: сложности в получении искомого набора данных или в его сортировке

по моему ищет что-то вроде такого:

1) берем все уникальные цвета выписываем в столбцы:
цвет1цвет2цвет3
2) ищем возможные комбинации, которыми можно заполнить эти столбцы, т.е. для моего последнего примера это будет
цвет1цвет2цвет3ААББГГААББДДААББЕЕААББЖЖААВВГГААВВДДААВВЕЕААВВЖЖ
3) показываем все эти значения в 1 столбце
т.е. примерно так
resultААББГГААББДДААББЕЕААББЖЖААВВГГААВВДДААВВЕЕААВВЖЖ
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39302866
fetisof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
j2k,

пример необходимого результата?

вот так надо:

Цвет1 АА
Цвет2 ББ
Цвет3 ГГ

Цвет1 АА
Цвет2 ББ
Цвет3 ДД

Цвет1 АА
Цвет2 ББ
Цвет3 ЕЕ

Цвет1 АА
Цвет2 ББ
Цвет3 ЖЖ

Цвет1 АА
Цвет2 ВВ
Цвет3 ГГ

Цвет1 АА
Цвет2 ВВ
Цвет3 ДД

Цвет1 АА
Цвет2 ВВ
Цвет3 ЕЕ

Цвет1 АА
Цвет2 ВВ
Цвет3 ЖЖ


кто-то из участников темы упомянул про сортировку. если бы было так как в примере отсортировано, было бы супер.
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39302869
fetisof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
j2k,

ну почему в одном то?!

а как понять к какому типу относится та или иная запись в столбце?

тип нужен!

т.е. 2 столбца по-любому.
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39302893
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Косноязычному ТС посвящается:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
with t as ( select 'цвет' attr,'белый' val from dual union all
            select 'цвет','жёлтый' from dual union all
            select 'вкус','сладкий' from dual union all
            select 'вкус','кислый' from dual  union all
            select 'форма','круглая'from dual
          )
select sys_connect_by_path('('||attr||':'||val||')', '\') as a_set
  from (select attr, val, dense_rank() over (order by attr) as attr_rn from t)
  where connect_by_isleaf = 1
  start with attr_rn = 1
  connect by attr_rn = prior attr_rn + 1
;

A_SET
-----------------------------------------------
\(вкус:сладкий)\(форма:круглая)\(цвет:жёлтый)
\(вкус:сладкий)\(форма:круглая)\(цвет:белый)
\(вкус:кислый)\(форма:круглая)\(цвет:жёлтый)
\(вкус:кислый)\(форма:круглая)\(цвет:белый)
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39303028
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fetisofну потому что надо так как я написал и никак иначе.
Осталось только перевести всё это на язык математики.

fetisofвы же, например, когда в магазин приходите за буханкой ржаного хлеба, вам не суют батон, типа бери что мы даем.
Название темы "Все возможные сочетания записей "
Соответственно клиент должен получить.
исходя из

Белый, черный
Батон, буханка

Черную буханку
черный батон
белую буханку
белый батон

Это математически и логически понятно.

Но вы предлагаете некую другую выборку, условия которой не формализованы.
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39303577
Фотография Egoр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183,
Через логарифмы подойдет?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
with r0(typ,
cod) as
 (select 'Цвет1', 'АА'
    from dual
  union all
  select 'Цвет2', 'ББ'
    from dual
  union all
  select 'Цвет2', 'ВВ'
    from dual
  union all
  select 'Цвет3', 'ГГ'
    from dual
  union all
  select 'Цвет3', 'ДД'
    from dual
  union all
  select 'Цвет3', 'ЕЕ'
    from dual
  union all
  select 'Цвет3', 'ЖЖ'
    from dual),
r as
 (select distinct typ, cod from r0),
t0 as
 (select typ, count(1) as cnt_typ, row_number() over(order by typ) - 1 as typ_id from r group by typ),
t1 as
 (select typ, cnt_typ, typ_id, power(2, sum(log(2, cnt_typ)) over(order by typ_id)) as norm from t0),
t as
 (select typ, cnt_typ, typ_id, nvl(lag(norm) over(order by typ_id), 1) as norm from t1),
tc0 as
 (select r.typ, r.cod, row_number() over(partition by r.typ order by cod) - 1 as cod_id from r),
tc as
 (select tc0.typ, tc0.cod, cod_id, cod_id * norm as cod_val from tc0 join t on tc0.typ = t.typ),
tot(n,
typ,
cod,
typ_id,
chk) as
 (select tc.cod_val, tc.typ, tc.cod, t.typ_id, 1
    from t
    join tc
      on tc.typ = t.typ
   where typ_id = 0
  union all
  select tot.n + tc.cod_val,
         case l
           when 1 then
            tc.typ
           else
            tot.typ
         end,
         case l
           when 1 then
            tc.cod
           else
            tot.cod
         end,
         t.typ_id,
         case l
           when 2 then
            1
           else
            row_number() over(partition by l, tot.n + tc.cod_val order by 1)
         end
    from (select level as l from dual connect by level <= 2), tot
    join t
      on t.typ_id = tot.typ_id + 1
    join tc
      on tc.typ = t.typ
   where chk = 1)
select typ, cod
  from tot
 where typ_id = (select max(t.typ_id) from t)
   and chk = 1
 order by n, typ
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39303620
Фотография Egoр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри, 982183. Предыдущий пост, конечно, для fetisof.

На языке математики задача ТС мне видится так.
Есть n-мерное пространство с конечным множеством элементов в каждом измерении.
Нужно построить множество всех точек этого пространства.
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39303643
AnSi_Sr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EgoрЕсть n-мерное пространство с конечным множеством элементов в каждом измерении.
Нужно построить множество всех точек этого пространства.

Точно, это постановку я и пытался неуклюже описать ранее, давно забыв терминологию.
AnSi_SrПостановка задачи такая: у автора есть несколько подмножеств строк. Он хочет найти все возможные сочетания элементов разных подмножеств. Причем вывести их не в привычном строчном виде: {{сочетание1, элемент 1 подмножества, элемент 2 подмножества, элемент 3 подмножества...}, ...}, а в виде столбца...
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39303649
xenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторЕсть n-мерное пространство с конечным множеством элементов в каждом измерении.
Нужно построить множество всех точек этого пространства.
Не силен в многомерных алгебрах, но мне, почему-то кажется, что решение через CROSS JOIN решили именно эту задачу.
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39303653
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xenixНе силен в многомерных алгебрах, но мне, почему-то кажется, что решение через CROSS JOIN решили именно эту задачу.Количество "измерений" не предопределено.
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39303659
Фотография Egoр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xenixНе силен в многомерных алгебрах, но мне, почему-то кажется, что решение через CROSS JOIN решили именно эту задачу.
Cross join из 19613514 это полное картезианское произведение всего справочника всех измерений на самого себя.
А ТСу требуется картезианское произведение всех измерений из этого справочника друг на друга.
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39303786
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fetisofвот еще пример пошире:

Цвет1 АА
Цвет2 ББ
Цвет2 ВВ
Цвет3 ГГ

нужно ОДНОЗНАЧНО получить следующее:

Цвет1 АА
Цвет2 ББ
Цвет3 ГГ
----------
Цвет1 АА
Цвет2 ВВ
Цвет3 ГГ

Кажется начинает доходить, но почему исключена третья комбинация?

Цвет1 ББ
Цвет2 ВВ
Цвет3 ГГ
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39303802
Фотография Egoр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183,

потому что в измерении "Цвет1" нет элемента ББ
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39303804
bishnike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183,

явно же исключено больше комбинаций, если вам ответят почему ее нет, вы дальше спросите почему исключена комбинация
Цвет1 ГГ
Цвет2 ГГ
Цвет3 ГГ
а потом про другие?

Почитайте внимательнее. И вообще, Elic уже дал ответ по задаче, всё достаточно прозрачно в логике постановки, и решение изящное.

единственное что тут под вопросом так это тема про "все возможные сочетания".

Тип и код идут в паре, вы это упустили.
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39303817
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bishnikeТип и код идут в паре, вы это упустили.
Точно.
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39303823
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К топикстартеру:
Первоначальная задача должна была звучать примерно так, как это написано у Elic

Исходные данные:
цвет , белый
вкус , сладкий
вкус , кислый
форма , круглая

Результат:
цвет , белый
вкус , сладкий
форма , круглая
цвет , белый
вкус , сладкий
форма , круглая


Вот теперь всё понятно.
И понятно что подразумевалось под " Все возможные сочетания записей "
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39303824
Фотография Egoр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183,

Что-то у вас вкус больно сладкий, кислого маловато
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39303827
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
точно. копипаст подвел

Результат:

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


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