1

サンプル データ SQL フィドル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 つの列が 6 unnest未満の場合、期待される結果が表示されます。クエリで何が間違っていますか??

私はpostgresql 9.3を使用しています

4

0 に答える 0