不同的一组不能正确显示?

时间:2015-08-12 12:38:44

标签: postgresql postgresql-9.3 unnest

示例数据 Sql fiddle http://sqlfiddle.com/#!15/c8a17/4

我的查询

select
    unnest(array[g,g1,g2]) as disp,
    unnest(array[g,g||'-'||g1,g||'-'||g1||'-'||g2]) as grp,
    unnest(array[1,2,3]) as ord,
    unnest(array['assesvalue','lst2','salesvalue','itemprofit','profitper','itemstockvalue'])as analysis,
    unnest(array[value1,tt,sv,tp,per,tsv])as val 
from ( 
    select 
        g,
        g1,
        g2,
        sum(value1) as value1,
        sum(tt) as tt,
        sum(sv) as sv,
        sum(tp) as tp,
        sum(per) as per,
        sum(tsv) as tsv 
    from table1 
    group by g,g1,g2
) as ta

它显示输出

disp    grp    ord    analysis             val
A       A       1       assesvalue          100
B       A-B     2       lst2                30
C       A-B-C   3       salesvalue           20
A       A       1       itemprofit           5
B       A-B     2       profitper            1
C       A-B-C   3      itemstockvalue        10

预期结果:

disp    grp    ord      analysis            val
A       A       1       assesvalue          100
A       A       1       lst2                30
A       A       1       salesvalue           20
A       A       1       itemprofit           5
A       A       1       profitper            1
A       A       1       itemstockvalue       10
B      A-B      2       assesvalue          100
B      A-B      2       lst2                30
B      A-B      2       salesvalue           20
B      A-B      2       itemprofit           5
B      A-B      2       profitper            1
B      A-B      2       itemstockvalue       10
C      A-B-C    3       assesvalue          100
C      A-B-C    3       lst2                30
C      A-B-C    3       salesvalue           20
C      A-B-C    3       itemprofit           5
C      A-B-C    3       profitper            1
C      A-B-C    3      itemstockvalue        10

在查询中我使用多个unnest。 前3 unnest里面有3列,其他有6列,它显示错误的输出,但如果最后2 unnest少于6,则显示我的预期结果。 在查询中做错了什么?

我正在使用 postgresql 9.3

0 个答案:

没有答案