1

为预算帐户制作表格,我的层次结构存储在“路径”列中,如下所示:

  • 杂货.生产.蔬菜.西红柿
  • 杂货、农产品、蔬菜、土豆
  • 杂货.农产品.水果
  • 杂货.烘焙.面粉
  • ETC

当我需要抓取所有产品时效果很好,因为我可以做一个

LIKE '生产.%'

查询并获取树中它下面的任何内容。

但是,对于任何给定的查询,我希望有一个“总计”列来总结“下方”所有记录的价格。

我能想到的唯一方法是对 GROUP BY 进行模式匹配,但我有一种预感,我可能会走错路。

任何建议将不胜感激。

4

1 回答 1

4

您可以使用相关子查询执行此操作:

select t.*,
       (select sum(prices)
        from t t2
        where t2.path like t.path || '.%'
       ) as SumBeneath
from t;

一样东西。这'.%'是获取下面的所有内容,不包括 t 中的当前行。如果要包括当前行,请删除句点。

于 2013-09-13T20:16:51.790 回答