您如何实施像使用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.
如何实现这一点,看起来很像一个数据透视表?
答案 0 :(得分:0)
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