- 此问题在此处已有答案**:
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。
1条答案
按热度按时间hwamh0ep1#
Postgres Crossstab特性已经在here中介绍过了。由于您需要的列是日期,我猜想您需要这些列是动态的。在这种情况下,您将不得不自己编写一个函数,读取price_date的不同值并执行动态构造的查询字符串。