【发布时间】:2010-09-08 08:40:59
【问题描述】:
我有一张类似这样的表:
CREATE TABLE example (
id integer primary key,
name char(200),
parentid integer,
value integer);
我可以使用 parentid 字段将数据排列成树状结构。
现在这是我无法解决的问题。给定一个 parentid,是否可以编写一条 SQL 语句来将该 parentid 下的所有 value 字段相加并递归到树的分支?
更新:我正在使用 posgreSQL,因此我无法使用精美的 MS-SQL 功能。无论如何,我希望将其视为一般 SQL 问题。
顺便说一句,在提出问题后的 15 分钟内得到 6 个答案,让我印象深刻!去堆栈溢出!
【问题讨论】:
-
我正在使用 posgreSQL,所以我无法使用那些花哨的 MS-SQL 功能。无论如何,我希望将其视为通用 SQL 问题。顺便说一句,在提出问题的 15 分钟内有 6 个答案给我留下了深刻的印象!去堆栈溢出!
-
这是分层数据。我发现 Anthony Mollinaro 在 SQL Cookbook (O'Reilly) 中关于层次数据的讨论非常方便;他涵盖了几乎所有流行的 DBMS,包括 PostrgreSQL。
-
如果你来自谷歌,请查看@Chris KL 的回复,因为 PostgreSQl 8.4 递归查询在 postgreSQL 上可用。
标签: sql postgresql recursive-query