我使用postgres ltree插件为树数据结构建模了以下数据集:
此查询允许我剪切剪切下面的树返回节点:
with data(path) as (SELECT * FROM test WHERE yaxis >= 2 ORDER BY yaxis) select * from data d1 where not exists (select 1 from data d2 where d1.path <> d2.path and d1.path @> d2.path);
注意,其中一个节点不是叶子,我想从上面得到结果,得到叶子并返回聚合的数据集。这是我想要使用的第二个查询:
SELECT * FROM test WHERE path <@ 'Top.Collections.Pictures.Astronomy' and leaf = true;
注意上面的'Top.Collections.Pictures.Astronomy'是从第一个查询输入的。
第二个查询返回此集:
我希望看到的综合结果是用第二个查询中的子项替换“Top.Collections.Pictures.Astronomy”