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;
假设我有以下 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;