我有以下几点 transactions
表格:
customer_id purchase_date product category department quantity store_id
1 2020-10-01 Kit Kat Candy Food 2 store_A
1 2020-10-01 Snickers Candy Food 1 store_A
1 2020-10-01 Snickers Candy Food 1 store_A
2 2020-10-01 Snickers Candy Food 2 store_A
2 2020-10-01 Baguette Bread Food 5 store_A
2 2020-10-01 iPhone Cell phones Electronics 2 store_A
3 2020-10-01 Sony PS5 Games Electronics 1 store_A
我想计算购买产品的平均数量(每个 product
在table上)。我还想计算每个项目的平均值 category
以及每个 department
通过核算同一产品范围内的所有产品 category
或者 department
分别。应注意区分独特的客户和产品 quantity
大于0(0表示退款,不应计入)。
基本上,输出表如下所示:
…在哪里 store_id
以及 average_level_type
是分区列。
有没有一种方法可以在事务表的一次传递中实现这一点?或者我需要将我的方法分解为多个步骤?
谢谢!
1条答案
按热度按时间yxyvkwin1#
用下面的“联合所有”怎么样-
如果要避免在这种情况下使用union all,可以使用类似rollup()或group by grouping sets()的方法来实现相同的效果,但要以问题中显示的格式获得输出,查询会稍微复杂一些。
编辑:下面是如何使用分组集获得相同的输出-