postgresql 按一个值分组,但 return 多列

postgresql group by one value but return multiple columns

假设我有以下 table:

id  location    vendor  price   qty
1     CA         nike     10    2
2     US         nike     11    1
3     US        adidas    12    2

我想要一个针对每个位置的供应商和 returns price * qty 分组的查询。所以每个位置都是一列。所以在这种情况下的结果是:

vendor  | CA | US
------------------
 nike   | 20 | 11
 adidas | 0  | 24
 

如有任何帮助,我们将不胜感激! Here's 您可以使用的 dbfiddle 具有 table 设置。

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