【发布时间】:2020-11-18 17:12:09
【问题描述】:
解决方案: 我们的最终目标是通过以下公式获得 Scaled AverageWeeklySales(AWS):
Scaled AWS = (Number of Weeks article has had a record within the store / maximum Number of Weeks in data) * (AWS / Number of Weeks)
输入“table_a”结构:
Store Article Date Week Year Sales
xx xx xx xx xx xx
试用: 已经构建了一个查询,直到找到 AWS [在商店级别] 并被困在那里继续前进。由于我是新手,我不确定如何通过 BigQuery SQL 实现这种 Scaled AWS。需要帮助!
WITH total_weekly_sales AS (
SELECT
Store,
Week,
SUM(Sales) AS TotalWeeklySales
FROM
table_a
GROUP BY
Store,
Week)
SELECT
Store,
AVG(TotalWeeklySales) AS AverageWeeklySales
FROM
total_weekly_sales tws
GROUP BY
Store
样本数据:
Store Article Date Week Year Sales
11 aa 2019-07-01 202001 2020 4.9
11 bb 2019-07-07 202001 2020 22.5
11 cc 2019-07-08 202002 2020 10.4
12 aa 2019-07-01 202001 2020 5.3
12 bb 2019-07-07 202001 2020 20.2
评论查询:
-
AWS - 表示平均每周销售额[从给定的数据中得出
商店级别,正如我在“
Tried Out”会议中提到的那样 问题,至于在商店级别找到 totalweeklysale 并获得 它的平均值给 AWS] - 周数 - 在商店级别[对于每个商店,多少周数据 展示。 例如 对于商店 11,此变量值为 2,而对于 存储12,这个变量值为1]
- 数据中的最大周数 - 例如: 从我们的样本数据中, 此值将是 2 [说明: 对于每个商店,必须 计算数据存在的总周数并取最大值 所有商店的周数。在这里,11 号商店有 2 周的时间 总计,而 Store 12 总共有 1 周。所以,这里的最大值 将是 2,它被分配为此变量的值]
期望的结果: Scaled AWS Formula Part_1 结果[文章在商店中有记录的周数/数据中的最大周数]
Store part_1_value
11 1.5 (3/2)
12 1 (2/2)
按比例缩放的 AWS 公式 Part_2 结果 [AWS / 周数]
Store part_2_value
11 18.9 (37.8/2)
12 25.5 (25.5/1)
最终输出为: [Part_1 * Part_2]
Store ScaledAverageWeeklySales
11 28.35 (1.5*18.9)
12 25.5 (1*25.5)
总的来说,我们的最终结果应该是在商店级别。 提前致谢!
【问题讨论】:
-
样本数据和预期结果将有助于解释公式。正如您所知,目前尚不清楚“周数”是什么意思,或者“数据中的最大周数”是如何计算的。也不清楚结果处于什么水平。 . .文章,商店,还有什么?并且数据中没有任何内容称为
AWS。 -
@GordonLinoff 已根据您的要求通过添加详细信息来编辑问题。
-
在编写查询代码以帮助您之前,我试图了解您的逻辑。您能解释一下为什么在商店 11 中文章在商店中有记录的周数是 3 吗?
-
@AlexandreMoraes 谢谢,期待您的解决方案!要回答您的问题,这意味着该特定商店的商品数量。例如。对于 Store 11,存在的唯一文章总数为 3,而对于 Store 12,该值为 2。
标签: sql group-by google-bigquery subquery week-number