【问题标题】:CROSSTAB with PIVOT带 PIVOT 的 CROSSTAB
【发布时间】:2021-08-25 23:38:06
【问题描述】:

这就是我的数据的样子 -

id  type  entity  diag  count
9   SER   ORG     a     18
9   SER   ORG     b     5
9   SER   PRAC    b     50

当我运行这个查询时 -

select *
    FROM CROSSTAB($$
    SELECT
        id, type, entity,
        diag,
        count
    FROM calc
    $$, $$
    SELECT
       name
    FROM diagnosis
    ORDER by name
    LIMIT 3
$$) AS pivot (
    id INT,
    type  TEXT,
    entity INT, 
    a INT, b INT, c int
);

输出是 -

id  type  entity  a  b
9   SER   ORG     18 5

输入中的最后一条记录发生了什么?

我希望这个输出 -

id  type  entity  a  b
9   SER   ORG     18 5
9   SER   PRAC       50

【问题讨论】:

    标签: sql postgresql pivot crosstab


    【解决方案1】:

    以这种方式尝试您的Crosstab 函数:

    select 
    col[1] "id", 
    col[2] "Type", 
    col[3] "Entity", 
    a, 
    b, 
    c
        FROM CROSSTAB($$
        SELECT
            ARRAY[id::varchar, type, entity],
            diag,
            count
        FROM calc order by 1
        $$, $$
        SELECT
           name
        FROM diagnosis
        ORDER by name
        LIMIT 3
    $$) AS pivot (
    col text[], 
        a INT, b INT, c int
    );
    

    DEMO

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-15
      • 2018-10-11
      • 2021-12-03
      • 1970-01-01
      • 1970-01-01
      • 2015-07-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多