我是 MySQL 新手,需要你的帮助来找出一个查询,以便我可以计算每个季度的平均值。 我有一个名为 USretail92_21 的表,如下所示(从 1992 年到 2021 年):
日期 | 销售额 |
---|---|
1992-01-01 | 701.0 |
1992-02-01 | 658.0 |
1992-03-01 | 731.0 |
1992-04-01 | 816.0 |
1992-05-01 | 856.0 |
1992-06-01 | 853.0 |
1992-07-01 | 101.0 |
1992-08-01 | 558.0 |
1992-09-01 | 431.0 |
考虑日期格式 1992-01-01 表示 1992 年 1 月。现在我运行以下查询来获取季度和月份:
选择年份(日期)为年份,月份名称(日期)为月份,季度(日期)为季度,销售额来自 USretail92_21,其中 kind="男装店" order by 1
这给了我这样的观点:
年 | 月 | 季度 | 销售额 |
---|---|---|---|
1992 | 一月 | 1 | 701.0 |
1992 | 二月 | 1 | 658.0 |
1992 | 三月 | 1 | 731.0 |
1992 | 四月 | 2 | 816.0 |
1992 | 五月 | 2 | 856.0 |
1992 | 六月 | 2 | 853.0 |
现在我向您提出的问题是如何获得每季度的平均销售额并获得如下所示的输出:
季度 | 年 | 平均销售额 |
---|---|---|
1 | 1992 | 696(一月/二月/三月平均) |
2 | 1992 | 841 |
最终,我想用 Python 绘制一个图表,将销售额视为 Y 轴,将“Q1_92 到 Q4_21”视为 X 轴
P粉7887656792024-01-30 09:01:32
您需要使用 GROUP BY
来计算总和和平均值等聚合。
根据您的示例进行工作:
WITH SalesPerMonth AS ( select year(date) as Year, monthname(date)as Month, quarter(date) as Quarter, sales from USretail92_21 where kind="Men's clothing stores" ) SELECT Quarter, Year, AVG(Sales) AS AverageSales FROM SalesPerMonth GROUP BY Quarter, Year
或者一次性完成所有操作:
select year(date) as Year, quarter(date) as Quarter, AVG(sales) AverageSales from USretail92_21 where kind="Men's clothing stores" group by year(date), quarter(date)