postgresql按一个值分组,但返回多列

postgresql按一个值分组,但返回多列,postgresql,crosstab,Postgresql,Crosstab,假设我有下表: id location vendor price qty 1 CA nike 10 2 2 US nike 11 1 3 US adidas 12 2 我想要一个查询,对供应商进行分组,并返回每个位置的price*qty。所以每个位置都是一列。因此,在这种情况下,结果将是: vendor | CA | US ------------------ nik

假设我有下表:

id  location    vendor  price   qty
1     CA         nike     10    2
2     US         nike     11    1
3     US        adidas    12    2
我想要一个查询,对供应商进行分组,并返回每个位置的
price*qty
。所以每个位置都是一列。因此,在这种情况下,结果将是:

vendor  | CA | US
------------------
 nike   | 20 | 11
 adidas | 0  | 24
 
任何帮助都将不胜感激!您可以使用的具有表格设置的DBFIDLE

SELECT vendor,
       sum(qty * price) FILTER (WHERE location = 'CA'),
       sum(qty * price) FILTER (WHERE location = 'US')
FROM atable
GROUP BY vendor;