为预算帐户做一个表,我的层次结构存储在"路径"列中,如下所示:
- 杂货.农产品.蔬菜.西红柿
- 杂货、农产品、蔬菜、土豆
- 杂货.农产品.水果
- 杂货.烘焙.面粉
- 等
当我需要抓住所有产品时效果很好,因为我可以做一个
喜欢"生产.%"
查询并获取树下的任何内容。
但是,对于任何给定的查询,我希望有一个"总计"列来汇总"下面"所有记录的价格。
我能想到的唯一方法是在 GROUP BY 上进行模式匹配,但我有一种预感,我可能走错了路。
任何建议将不胜感激。
您可以使用相关的子查询来执行此操作:
select t.*,
(select sum(prices)
from t t2
where t2.path like t.path || '.%'
) as SumBeneath
from t;
一件事。 '.%'
是获取下面的所有内容,不包括 t 中的当前行。 如果要包含当前行,请删除句点。