【发布时间】:2022-12-28 21:54:28
【问题描述】:
我试图在 Apache Superset 的树形图中呈现层次结构查询。 由于某种原因,它总是将其显示为单个点或一条直线。 我最初尝试用它来呈现 PostgreSQL 备份的 pgBackRest 信息的结构,但当它不起作用时,我尝试了一个简单的员工和经理层次结构查询,但也没有效果。 如果有人使用过树形图,请提供帮助。 我的 Apache Superset 版本是 1.3.2 附件是我试图让它工作的查询。
with recursive cte as (
select 1 as level, ds.name, ds.backup_label, ds.backup_prior from (
select data->'name' as name,
(jsonb_array_elements(data->'backup')->>'label')::text as backup_label,
(jsonb_array_elements(data->'backup')->>'prior')::text as backup_prior
from jsonb_array_elements(v2.pgbackrest_info()) as data
) as ds
where ds.backup_prior is null
union all
select c.level + 1 as level, ds2.name, ds2.backup_label, ds2.backup_prior from (
select data->'name' as name,
(jsonb_array_elements(data->'backup')->>'label')::text as backup_label,
(jsonb_array_elements(data->'backup')->>'prior')::text as backup_prior
from jsonb_array_elements(v2.pgbackrest_info()) as data
) as ds2 join cte c on c.backup_label = ds2.backup_prior)
select * from cte;
SELECT id, name, manager_id, 1 as depth FROM employees
WHERE id = 2
UNION
SELECT e.id, e.name, e.manager_id, t.depth + 1
FROM employees as e
JOIN tree t
ON t.id = e.manager_id
)
SELECT id, name, manager_id, depth FROM tree;
【问题讨论】:
-
你有没有想过这个?