sql - 如何使用SQL计算树中值的总和

标签 sql tree

我需要对用户树获得的每个级别的积分求和。等级 1 是用户低于用户 1 等级的用户积分的总和。 Level 2 是用户下面 2 个级别的用户的 Level 1 积分,以此类推……

该计算每月在非生产服务器上进行一次,无需担心性能。

SQL 会怎样做呢?

如果你感到困惑,别担心,我也是!

用户表:

ID    ParentID    Points
1     0           230
2     1           150
3     0           80
4     1           110
5     4           54
6     4           342

Tree:
0
|---\
1    3
| \
2  4---
    \  \
     5  6

输出应该是:
ID    Points    Level1     Level2
1     230       150+110    150+110+54+342
2     150
3     80
4     110       54+342
5     54
6     342

SQL Server 语法和函数最好...

最佳答案

如果您使用的是 Oracle DBMS,那将非常简单,因为 Oracle 支持使用 进行树查询。连接方式/开始于 句法。对于 SQL Server,我想你可能会发现 Common Table Expressions有用

关于sql - 如何使用SQL计算树中值的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/91360/

相关文章:

postgresql - 性能和从 GUI move 节点的最佳 PostgreSQL 层次树?

C - 使用后序遍历释放二叉树的内存

sql - 在 DB2 数据库中创建存储过程时出错

sql - 如何插入 Select every with TOP() 子句

mysql - 查询在特定时间后插入行

python - 我怎样才能用这个结构做到这一点?

c# - SqlDataReader 返回 x 行,但 SQL 查询返回 y 行

sql - sql中的通配符

css - 可调整大小的三列背景图像/封面布局

java - 在 Java 中解析算术表达式并从中构建树