使用 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 的数据透视表样式价格矩阵的主要内容,如果未能解决你的问题,请参考以下文章