我是 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)