postgresql 从SQL中的行创建列[重复]

uxhixvfz  于 2023-01-08  发布在  PostgreSQL
关注(0)|答案(1)|浏览(139)
    • 此问题在此处已有答案**:

PostgreSQL Crosstab Query(7个答案)
17小时前关门了。
我有一个产品的历史价格表,它跟踪产品价格随时间的变化,类似于:

CREATE TABLE product
  product_id int
  price_date date
  price number

我希望以以下格式显示数据:

[product_id] [2022-12-05] [2022-12-19] [2022-12-31] [2023-01-03]
    112          4.23        4.5          4.5          4.86
    113          3.98        3.91         5.39         5.45

即一行将包含产品ID和每个日期的价格,无论有多少个日期。我不知道提前不同日期的数量。大多数产品将在同一天更新;如果有一个值丢失了,可以显示null。这在SQL中可能吗?或者我最好在应用程序逻辑中这样做?如果有区别的话,我会使用PostgreSQL。

hwamh0ep

hwamh0ep1#

Postgres Crossstab特性已经在here中介绍过了。由于您需要的列是日期,我猜想您需要这些列是动态的。在这种情况下,您将不得不自己编写一个函数,读取price_date的不同值并执行动态构造的查询字符串。

相关问题