Как переписать иерархический запрос Oracle sql на поляры?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как переписать иерархический запрос Oracle sql на поляры?

Сообщение Anonymous »

В Oracle у меня есть следующий иерархический SQL:
with prod as (select 10 id,'1008' code from dual union all
select 11 id,'1582' code from dual union all
select 12 id,'1583' code from dual union all
select 13 id,'2023' code from dual union all
select 14 id,'2025' code from dual union all
select 15 id,'2030' code from dual union all
select 16 id,'2222' code from dual
),
prre as (select 10 detail_product_id,90 master_product_id from dual union all
select 12 detail_product_id,11 master_product_id from dual union all
select 91 detail_product_id,92 master_product_id from dual union all
select 14 detail_product_id,12 master_product_id from dual union all
select 90 detail_product_id,93 master_product_id from dual union all
select 11 detail_product_id,91 master_product_id from dual union all
select 15 detail_product_id,12 master_product_id from dual union all
select 13 detail_product_id,12 master_product_id from dual union all
select 94 detail_product_id,95 master_product_id from dual
)
select
prod.code,
connect_by_root prod.code group_type
from prre,prod
where prre.detail_product_id = prod.id
connect by nocycle prior prre.detail_product_id = prre.master_product_id
start with prod.code in ('1008', '1582')

Результат:
CODE GROUP_TYPE
1582 1582
1583 1582
2030 1582
2025 1582
2023 1582
1008 1008

Как мне переписать его в полярный формат?
Начальный dfs будет выглядеть так:
import polars as pl
prod = pl.DataFrame({'id': [10,11,12,13,14,15,16],
'code': ['1008','1582','1583','2023','2025','2030','2222']
})
prre = pl.DataFrame({'detail_product_id': [10,12,91,14,90,11,15,13,94],
'master_product_id': [90,11,92,12,93,91,12,12,95]
})

Но как быть дальше?

Задача простым языком:
  • начните с prod df, где код «1008» или «1582».
  • взять соответствующий идентификатор
  • используя этот цикл идентификаторов через prre df: где бы вы ни нашли этот идентификатор в поле Detail_product_id, соответствующий код продукта df будет в списке результатов вместе со значением корневого кода (с именем group_type).
  • просмотрите master_product_id- s к этим Detail_product_id-s рекурсивно, повторяя предыдущий шаг
Найденная структура выглядит следующим образом:
11 -> 1582
|-12 -> 1583
|-13 -> 2023
|-14 -> 2025
|-15 -> 2030


Подробнее здесь: https://stackoverflow.com/questions/787 ... -to-polars
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как переписать иерархический запрос Oracle sql на поляры?
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Переписать функцию от пандов в поляры
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Поляры: как узнать количество столбцов в выражении поляры?
    Anonymous » » в форуме Python
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Поляры: как узнать количество столбцов в выражении поляры?
    Anonymous » » в форуме Python
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Поляры + Паркет vs. Поляры + MySQL?
    Anonymous » » в форуме Python
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»