具有层次结构到多列的表

时间:2014-07-08 14:25:27

标签: sql postgresql hierarchical-data

我有一张公司单位表:

Id    Name       Parent
1     Head       null
2     IT dep     1
3     Backoffice 1
4     Devs       2

和用户

Id    Name       UnitId
1     One        1
2     Two        etc

每个用户(在其他表格中)都有一些相关的数字,我们称之为评级。

我想创建一个可以生成以下报告的查询,其中avg rating是直接在此单元和子单元中的所有用户的平均评分,加上用户自己的评分。

Unit                                     Avg Rating

Head                                     25%
      IT Dep                             30%
             Devs                        40%
                  Dev1                   50%
                  Dev2                   30%
             SomeoneElse                 20% 
      Backoffice                         35%
             SomeoneInBO                 45%
             AlsoInBO                    25%

我想要使用的方法是在嵌套行中选择相同的值,而不是将此数据发送到pivot(它将处理显示此数据)。所以我需要像这样的结果

Unit  Unit1  Unit2 Who                       Avg Rating

Head  null   null  null                      25%
Head  IT Dep null  null                      30%
Head  IT Dep Devs  null                      40%
Head  IT Dep Devs  Dev1                      50%
Head  IT Dep Devs  Dev2                      30%
etc...

我想我已经想出如何做到这一点,如果层次结构的级别已经知道,但是如何在一般情况下实现这个目标呢?

0 个答案:

没有答案