我需要只對一個表的葉子節點進行求和,其組織方式如下(fiddle).
create table test_1 (id int, parent_id int, name varchar(10), val int)。)
insert into test_1 values (1, null, 'ini 1', 1)。)
insert into test_1 values (2, null, 'ini 2', 2)。)
insert into test_1 values (3, null, 'ini 3', 3)。) --求和。
insert into test_1 values (11, 1, 'lv 1 1', 4)。) --求和。
insert into test_1 values (21, 2, 'lv 2 1', 5)。)
insert into test_1 values (221, 21, 'lv 2 2 1', 6)。)
insert into test_1 values (222, 21, 'lv 2 2 2', 7)。) --求和。
insert into test_1 values (2221, 221, 'lv 2 2 2 1', 8)。) --求和。
insert into test_1 values (2222, 221, 'lv 2 2 2', 9)。) --求和。
insert into test_1 values (2223, 221, 'lv 2 2 2 3', 0)。) --求和。
ini 1 (1)
|- lv 1 1 (4) <。 -
ini 2 (2)
|- lv 2 1 (5)
|- lv 2 2 1 (6) < -
|- lv 2 2 2 (7)
|- lv 2 2 2 1 (8) < -
|- lv 2 2 2 2 (9) < -
|- lv 2 2 2 3 (0) < -
ini 3 (3) < -
4 6 8 9 0 3 = 30
但實際的表格是巨大的。有什么方法可以快速獲得所有葉子節點的總和呢,如圖所示?
uj5u.com熱心網友回復:
似乎正確的總和是31=(3 4 7 8 9 0)
select sum(val)
from test_1 t
where not exists (select *)
from test_1 tt
where t.id=tt.parent_id)。)
31
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/328416.html
標籤:
上一篇:使用多個資料庫的PHPCodeigniter-是對許多連接的支持
下一篇:Python代理
