Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 выбор Дерева  [new]
vitt
Member

Откуда:
Сообщений: 2
как из множества атрибутов выбрать наибольшее дерево по глубине?
например табличка
А В
1 2
1 3
2 4
3 5
4 6
5 7
7 8
10 11

для тех кто рещит-
из множества выбрать наибольшее дерево по глубине-затем из множества удалить его, запомнив корень,
ту же операцию проделать с оствшимся множеством,
до тех пор пока остануться несвязные атрибуты
для примера в В должны остаться уникальные элементы плюс
множество корней деревьев по колонке В
корни
27 авг 06, 14:41    [3058494]     Ответить | Цитировать Сообщить модератору
 Re: выбор Дерева  [new]
SeaGate
Member

Откуда: Новосибирск
Сообщений: 1635
vitt
как из множества атрибутов выбрать наибольшее дерево по глубине?
например табличка
А В
1 2
1 3
2 4
3 5
4 6
5 7
7 8
10 11

для тех кто рещит-
из множества выбрать наибольшее дерево по глубине-затем из множества удалить его, запомнив корень,
ту же операцию проделать с оствшимся множеством,
до тех пор пока остануться несвязные атрибуты
для примера в В должны остаться уникальные элементы плюс
множество корней деревьев по колонке В
корни

Тривиальнейшее задание на знание иерархических операторов.
Какое-то тестовое? А где такие простые дают?
27 авг 06, 14:52    [3058509]     Ответить | Цитировать Сообщить модератору
 Re: выбор Дерева  [new]
zirex
Member

Откуда:
Сообщений: 714
часть #1 понял - вот:
with tab as ( 
  select 1 as a, 2 as b from dual union all
  select 1, 3  from dual union all
  select 2, 4 from dual union all
  select 3, 5 from dual union all
  select 4, 6 from dual union all
  select 5, 7 from dual union all
  select 7, 8 from dual union all
  select 10, 11 from dual
)
  
select * from (
  select row_number() over (order by lev desc) deep, tree, lev from 
  ( 
    select level as lev, sys_connect_by_path(a, ',') as tree from tab
    connect by prior b = a )
  )
where deep = 1

а вторую не понял
27 авг 06, 15:02    [3058525]     Ответить | Цитировать Сообщить модератору
 Re: выбор Дерева  [new]
waspwort
Member

Откуда: Тамбов-сити
Сообщений: 325
vitt
как из множества атрибутов выбрать наибольшее дерево по глубине?
например табличка
А В
1 2
1 3
2 4
3 5
4 6
5 7
7 8
10 11

для тех кто рещит-
из множества выбрать наибольшее дерево по глубине-затем из множества удалить его, запомнив корень,
ту же операцию проделать с оствшимся множеством,
до тех пор пока остануться несвязные атрибуты
для примера в В должны остаться уникальные элементы плюс
множество корней деревьев по колонке В
корни


то есть в твоем примере должна остаться строчка [10, 11], правильно?
27 авг 06, 15:23    [3058560]     Ответить | Цитировать Сообщить модератору
 Re: выбор Дерева  [new]
vitt
Member

Откуда:
Сообщений: 2
waspwort
vitt
как из множества атрибутов выбрать наибольшее дерево по глубине?
например табличка
А В
1 2
1 3
2 4
3 5
4 6
5 7
7 8
10 11

для тех кто рещит-
из множества выбрать наибольшее дерево по глубине-затем из множества удалить его, запомнив корень,
ту же операцию проделать с оствшимся множеством,
до тех пор пока остануться несвязные атрибуты
для примера в В должны остаться уникальные элементы плюс
множество корней деревьев по колонке В
корни

по первой задаче ясно а вот про вторую

то есть в твоем примере должна остаться строчка [10, 11], правильно?

должно на выходе быть следующее(я не зря про вторую задачку говорил и столбец В) на выходе у второйзадачи д.б
2,3,11
29 авг 06, 10:46    [3064634]     Ответить | Цитировать Сообщить модератору
 Re: выбор Дерева  [new]
Elic
Member

Откуда:
Сообщений: 29990
vitt
из множества выбрать наибольшее дерево по глубине-затем из множества удалить его, запомнив корень,
ту же операцию проделать с оствшимся множеством,
до тех пор пока остануться несвязные атрибуты
для примера в В должны остаться уникальные элементы плюс

множество корней деревьев по колонке В
Вся это тягомутина эквивалентна последней строчке
select b ... where a not in (select b ...)
29 авг 06, 11:00    [3064728]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить