使用 Postgres 的数据透视表样式价格矩阵

Posted

技术标签:

【中文标题】使用 Postgres 的数据透视表样式价格矩阵【英文标题】:Pivot-table style price matrix with Postgres 【发布时间】:2016-12-20 06:28:13 【问题描述】:

您将如何使用 Postgres 实现在机票搜索网站上看到的价格矩阵?本质上,我想按类别显示商品的最低价格。商品可以是任何东西,但假设我们正在处理具有各种属性(如颜色或尺寸)的商品。

我们的产品表可能如下所示:

id name price color size 1 Test 1 99 blue medium 2 Test 2 89 red small 3 Test 3 109 blue large 4 Test 4 79 blue small

我们会在一个轴上显示颜色,在另一个轴上显示大小。表中的值将显示该颜色/尺寸组合的最低价格,因此蓝色和小号相交处的单元格为 79。

你如何实现这个,它看起来很像一个数据透视表?

【问题讨论】:

你能添加你想要的输出吗? 【参考方案1】:
with t(id,name,price,color,size) as (
  values (1,'Test 1',99,'blue','medium')
  ,      (2,'Test 2',89,'red','medium')
  ,      (3,'Test 3',109,'blue','large')
  ,      (4,'Test 4',79,'blue','medium')
  ,      (5,'Test 5',99,'blue','medium')
  ,      (6,'Test 6',69,'blue','small')
  ,      (7,'Test 7',107,'blue','large')
)
select DISTINCT on (color,size) id, color, size, price
from t
  ORDER BY  color,size,price

【讨论】:

以上是关于使用 Postgres 的数据透视表样式价格矩阵的主要内容,如果未能解决你的问题,请参考以下文章

在 Postgres 9.6 中创建数据透视表

带有交叉表的 Postgres 数据透视表

将价格插入数据透视表

取消透视 Excel 矩阵/数据透视表?

复制透视表样式时,系统提示“ excel无法从磁盘内获取数据透视表的源数据”

如何从 MYSQL 中的数据透视表中获取最后更新的价格