【发布时间】:2021-10-09 09:38:44
【问题描述】:
这可能很容易,机器人不知何故我无法得到想要的结果:
我的数据如下所示:我有一张大桌子,上面有已售商品。每个项目都有一个指定的类别(此处为 A-D)和国家/地区。我想计算每个类别在欧洲销售了多少商品,以及该特定类别在总销售额中的份额是多少
我的数据如下所示:
| country | item_id | item_cat |
|---|---|---|
| Europe | 1 | A |
| Europe | 2 | A |
| Europe | 3 | B |
| Europe | 4 | B |
| Europe | 5 | C |
| Europe | 6 | C |
| Europe | 7 | C |
| USA | 8 | D |
| USA | 9 | D |
| USA | 10 | D |
我想要的输出如下:
| country | item_cat | cat_sales | total_sales | share |
|---|---|---|---|---|
| Europe | A | 2 | 7 | 0.29 |
| Europe | B | 2 | 7 | 0.29 |
| Europe | C | 3 | 7 | 0.43 |
我尝试的是:
SELECT
country,
item_cat,
count(*) as cat_sales,
count(*) OVER () as total_sales,
cat_sales / total_sales as share
FROM data
where country='Europe'
group by item_cat
但是 SQL 告诉我不能在一个请求中分组和使用窗口化。 我怎么能解决这个问题? 提前致谢
【问题讨论】: