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

Возможно ли запросом получить все возможные сочетания из примерно такой таблицы:

Имеем такой уникальный (по Тип+Код) набор записей:
Тип Код
1 АА
1 ББ
2 ВВ
2 ГГ
2 ДД

Хотелось бы получить следующее:
Тип Код
1 АА
2 ВВ
1 АА
2 ГГ
1 АА
2 ДД
1 ББ
2 ВВ
1 ББ
2 ГГ
1 ББ
2 ДД

Поле Тип может принимать значения от 1 и до к.г. далее.

Спасибо.
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39301326
xenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
SELECT A.TYPE,B.CODE
FROM TABLEA A
CROSS JOIN TABLEA B


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

по-моему перебор...

SELECT A.TYPE, B.CODE
FROM(
SELECT 1 TYPE, 'АА' CODE FROM DUAL
UNION ALL
SELECT 1, 'ББ' FROM DUAL
UNION ALL
SELECT 2, 'ВВ' FROM DUAL
UNION ALL
SELECT 2, 'ГГ' FROM DUAL
UNION ALL
SELECT 2, 'ДД' FROM DUAL) A
CROSS JOIN (
SELECT 1 TYPE, 'АА' CODE FROM DUAL
UNION ALL
SELECT 1, 'ББ' FROM DUAL
UNION ALL
SELECT 2, 'ВВ' FROM DUAL
UNION ALL
SELECT 2, 'ГГ' FROM DUAL
UNION ALL
SELECT 2, 'ДД' FROM DUAL) B

TYPE CODE

1 АА
1 ББ
1 ВВ
1 ГГ
1 ДД
1 АА
1 ББ
1 ВВ
1 ГГ
1 ДД
2 АА
2 ББ
2 ВВ
2 ГГ
2 ДД
2 АА
2 ББ
2 ВВ
2 ГГ
2 ДД
2 АА
2 ББ
2 ВВ
2 ГГ
2 ДД



чего-то не хватает в условии.
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39301344
xenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в моем предыдущем тресните его distinct-ом
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
WITH C(TYPEP,CODE)
  AS
  (
     SELECT 1,'AA'FROM DUAL 
       UNION ALL
     SELECT 1,'BB'FROM DUAL
       UNION ALL 
     SELECT 2,'VV'FROM DUAL 
       UNION ALL
     SELECT 2,'GG'FROM DUAL 
       UNION ALL
     SELECT 2,'DD'FROM DUAL 
  )
SELECT DISTINCT X.TYPEP,X1.CODE
  FROM C X 
  CROSS JOIN C X1
  ORDER BY X.TYPEP;
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39301348
fetisof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xenix,

а теперь не хватает вариантов. да и как бы не нужные появились.

например: 2 АА

т.е. такие пары Тип+Код которых нет в исходных данных.

%))))
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39301353
xenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тогда я не совсем понял задачу
Код: plsql
1.
2.
3.
4.
5.
6.
WITH C(TYPEP,CODE)
(
  SELECT 1,'AA'FROM DUAL
    UNION ALL
  SELECT 2,'BB'FROM DUAL 
)


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

WITH C(TYPEP,CODE)
(
SELECT 1,'AA'FROM DUAL
UNION ALL
SELECT 2,'BB'FROM DUAL
)

в данном случае результат нужен такой:

1 АА
2 ВВ

по-моему я в первом посте написал что имеем и что хотим получить.
реальный пример исходных данных и желаемого результата.

Тип Код
1 АА
1 ББ
2 ВВ
2 ГГ
2 ДД

Хотелось бы получить следующее:
Тип Код
1 АА
2 ВВ
1 АА
2 ГГ
1 АА
2 ДД
1 ББ
2 ВВ
1 ББ
2 ГГ
1 ББ
2 ДД

ессно я его нарочно упорядочил для наглядности, что бы были видны т.н. пары.
в данном примере это пары, т.к. в примере тип принимает значения 1 и 2.
но могут быть и "тройки" и "четверки" и т.д.
" Поле Тип может принимать значения от 1 и до к.г. далее. "
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39301577
AnSi_Sr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fetisofxenix,
...


Постановка задачи такая: у автора есть несколько подмножеств строк. Он хочет найти все возможные сочетания элементов разных подмножеств. Причем вывести их не в привычном строчном виде: {{сочетание1, элемент 1 подмножества, элемент 2 подмножества, элемент 3 подмножества...}, ...}, а в виде столбца:
/*сочетания*/{
/*сочетание1*/{
{сочетание 1, элемент 1 подмножества},
{сочетание 1, элемент 2 подмножества},
{сочетание 1, элемент 3 подмножества}, ...
}
/*сочетание2*/{...},....
}

С помощью XML или иерархических запросов это можно сделать.

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

Вот и получятся все возможные комбинации код и тип.
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39301603
AnSi_Sr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183Вот и получятся все возможные комбинации код и тип.
Да. Но задача другая.
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39301785
Фотография JaRo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну положим задачу вы описали не очень. Добавьте в свой пример запись :
3 ЕЕ
и расскажите нам, какой вы при этом хотите результат.

Для текущего примера можно в лоб :)
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
WITH C(TYPEP,CODE)
  AS
  (
     SELECT 1,'AA'FROM DUAL 
       UNION ALL
     SELECT 1,'BB'FROM DUAL
       UNION ALL 
     SELECT 2,'VV'FROM DUAL 
       UNION ALL
     SELECT 2,'GG'FROM DUAL 
       UNION ALL
     SELECT 2,'DD'FROM DUAL 
  )
select case when mod(rn,2) = 0 then t1.TYPEP else t2.TYPEP end TYPEP,
       case when mod(rn,2) = 0 then t1.CODE else t2.CODE end CODE
from C t1 
 join C t2 partition by (typep) on t2.TYPEP != t1.TYPEP
 join (select 1 rn from dual union all select 2 from dual) rn on 1=1
where  t1.TYPEP = 1
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39301791
fetisof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AnSi_Sr,

если перейти на конкретику, то есть цвета: Цвет 1, Цвет 2 и т.д., пока их 5.
в примере это типы 1 и 2.
каждый из цветов может принимать различные значения.
в примере это коды.

для каждого артикула заданы списки возможных типов цветов и значений.

но не сразу в виде сочетаний, парами, и т.д., а так как я привел в примере (Тип+Код):
Цвет1 АА
Цвет2 ББ
Цвет2 ВВ
и т.д.

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

хранение хранением, но в реальной жизни суть его это сочетания значений для каждого типа.

выглядеть должно это так:

АА
ББ
АА
ВВ
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39302400
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AnSi_Sr982183Вот и получятся все возможные комбинации код и тип.
Да. Но задача другая.
А разве он не просит все возможные комбинации?
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39302403
не равно
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
982183А разве он не просит все возможные комбинации?Он не способен объяснить, но кажется ему нужно размножение строк по количеству противоположного типа, то есть банальный антижоин по типу и вывод только одной стороны.
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39302424
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Он же говорит, есть цвет и есть артикул.
И ему нужны все сочетания цветов и артикулов.

Например:
Если есть три цвета и три артикула, то есть девять сечетаний
А1 Ц1
А1 Ц2
А1 Ц3
А2 Ц1
А2 Ц2
А2 Ц3
А3 Ц1
А3 Ц2
А3 Ц3

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

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

я могу привести еще сколько угодно примеров исходных данных и однозначного ожидаемого результата.

я думаю от того как это будет называться, никому легче не станет.

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

забудьте вы про артикулы, это было описание сути вещей.

вот вам конкретный пример:
Имеем:
Цвет1 АА
Цвет2 ББ
Цвет2 ВВ

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

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

вот еще пример пошире:

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

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

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

для наглядности группы разделил ------------, ессно это в результирующем наборе не нужно.

достаточно примеров?
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39302803
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fetisofвот вам конкретный пример:
Имеем:
Цвет1 АА
Цвет2 ББ
Цвет2 ВВ

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

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



Что такое ----------

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

вот еще пример пошире:

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

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

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


А почему не

Цвет1 АА
Цвет1 ББ
Цвет1 ВВ
Цвет1 ГГ
Цвет2 АА
Цвет2 ББ
Цвет2 ВВ
Цвет2 ГГ
Цвет3 АА
Цвет3 ББ
Цвет3 ВВ
Цвет3 ГГ
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39302809
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КАкие такие "группы" ты отделяешь ---------
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39302812
xenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор"Все возможные сочетания записей " в этом случае будет:
Цвет1 АА
Цвет1 ББ
Цвет1 ВВ
Цвет2 АА
Цвет2 ББ
Цвет2 ВВ

по Вашему описанию желаемого результата у меня получилось так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
WITH COLOURS(COLOUR,TYPEP)AS
  (
    SELECT 'COLOUR1','AA'FROM DUAL 
       UNION ALL
    SELECT 'COLOUR2','BB'FROM DUAL  
       UNION ALL
    SELECT 'COLOUR2','VV'FROM DUAL
  ),
DISTINCTCOLOURS AS
  (
    SELECT DISTINCT COLOUR 
     FROM COLOURS
  ),
DISTINCTTYPES AS
  (
    SELECT DISTINCT TYPEP 
     FROM COLOURS
  )
SELECT DC.COLOUR,DT.TYPEP
  FROM DISTINCTCOLOURS DC
  CROSS JOIN DISTINCTTYPES DT
 ORDER BY DC.COLOUR,DT.TYPEP;
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39302821
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это тот вариант, который я ему предложил.
Он же утверждает, что группировка должна быть несколько другая.
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39302842
j2k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fetisof, оно?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
with t as  (
             select 1 a,'АА' b from dual 
               union all
             select 1,'ББ'from dual
               union all 
             select 2,'ВВ'from dual 
               union all
             select 2,'ГГ'from dual 
               union all
             select 2,'ДД'from dual 
             )
select t1.* from t t1 cross join t t2 
where t1.a<>t2.a
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #39302846
fetisof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
982183,

я же написал что это:

"для наглядности группы разделил ------------, ессно это в результирующем наборе не нужно."

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

а вы пробовали тестировать?
ожидания у ТС другие
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
with t as  (
             select 'Цвет1' a,'АА' b from dual 
               union all 
             select 'Цвет2','ББ'from dual 
               union all
             select 'Цвет2','ВВ'from dual 
               union all
             select 'Цвет3','ГГ'from dual 
             )
select t1.* from t t1 cross join t t2 
where t1.a<>t2.a


Или "А я... угадаю эту мелодию с 3х нот" :D
...
Рейтинг: 0 / 0
Все возможные сочетания записей
    #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
46 сообщений из 46, показаны все 2 страниц
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Все возможные сочетания записей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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