【问题标题】:Pivoting rows to columns for each id将每个 id 的行转为列
【发布时间】:2021-09-18 05:00:40
【问题描述】:

我想在 Postgres 10 中将行转为列。

这是db-fiddle上的示例数据:

我想实现如下输出:

【问题讨论】:

  • 想必结果集中的id应该和原始数据中的id一致。

标签: sql postgresql unpivot


【解决方案1】:

这是unpivoting,横向连接是一种方便的方法。据推测,您希望结果集中的 id 与原始数据中的相同:

select t.id, v.bin, v.sales
from t cross join lateral
     (values ('bin1', bin1), ('bin2', bin2), ('bin3', bin3)
     ) v(bin, sales);

Here 是一个 dbfiddle。

【讨论】:

    猜你喜欢
    • 2019-04-27
    • 2021-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-25
    • 2019-10-09
    • 2023-01-31
    相关资源
    最近更新 更多