我有一个名为 historical_currencies_rate
的表,其中保存了一些已知货币的过去 8 年的汇率。例如(欧元-美元)。表格看起来像这样
+---------------------------+---------------+------------+
| rate_date | currency_pair | rate |
+---------------------------+---------------+------------+
| 2006-01-01 | EUR-USD | 1.1797 |
| 2006-02-01 | EUR-USD | 1.1826 |
| 2006-03-01 | EUR-USD | 1.1875 |
| 2006-04-01 | EUR-USD | 1.2083 |
| 2006-05-01 | EUR-USD | 1.2088 |
| 2006-06-01 | EUR-USD | 1.2093 |
| 2006-07-01 | EUR-USD | 1.2093 |
| 2006-08-01 | EUR-USD | 1.2093 |
| 2006-01-01 | JPY-USD | 0.01275 |
| 2006-02-01 | JPY-USD | 0.01275 |
| 2006-03-01 | JPY-USD | 0.01275 |
| 2006-04-01 | JPY-USD | 0.01275 |
| 2006-05-01 | JPY-USD | 0.01275 |
| 2006-06-01 | JPY-USD | 0.01275 |
| 2006-07-01 | JPY-USD | 0.01275 |
| 2006-08-01 | JPY-USD | 0.01275 |
| 2006-01-01 | GBP-USD | 1.559 |
| 2006-02-01 | GBP-USD | 1.559 |
| 2006-03-01 | GBP-USD | 1.559 |
| 2006-04-01 | GBP-USD | 1.559 |
| 2006-05-01 | GBP-USD | 1.559 |
| 2006-06-01 | GBP-USD | 1.559 |
| 2006-07-01 | GBP-USD | 1.559 |
| 2006-08-01 | GBP-USD | 1.559 |
| 2006-01-01 | AUD-USD | 1.0515 |
| 2006-02-01 | AUD-USD | 1.0515 |
| 2006-03-01 | AUD-USD | 1.0515 |
| 2006-04-01 | AUD-USD | 1.0515 |
| 2006-05-01 | AUD-USD | 1.0515 |
| 2006-06-01 | AUD-USD | 1.0515 |
| 2006-07-01 | AUD-USD | 1.0515 |
| 2006-08-01 | AUD-USD | 1.0515 |
| 2006-01-02 | EUR-USD | 1.2092 |
| 2006-02-02 | EUR-USD | 1.2066 |
| 2006-03-02 | EUR-USD | 1.2061 |
| 2006-04-02 | EUR-USD | 1.2061 |
| 2006-05-02 | EUR-USD | 1.2061 |
| 2006-06-02 | EUR-USD | 1.1981 |
| 2006-07-02 | EUR-USD | 1.1973 |
| 2006-08-02 | EUR-USD | 1.1948 |
+---------------------------+---- ----------+------------+
我在这里向您展示了 2006 年最多 8 天的少数货币数据,但我有 18 种货币的大量数据,截至 2013 年有 30 天的数据。
我的查询是我想要一个包含特定货币每月平均汇率的数组。例如,在我的示例中,1 月
的 EUR-USD
平均值是 1.19935
,JPY-USD
是0.01275
,GBP-USD
为 1.559
,2 月
是 EUR-USD
的平均值1.2030375
等
我想要 EUR-USD
的平均值数组,或者可能是每个月的一些其他货币对,即。应该是这样的
`[1.19935, 1.2030375, ......]`
查询结果 = [平均。 EUR-USD
2006 年 1 月
的平均值。 2006 年 2 月
的 EUR-USD
,................,平均。 EUR-USD
为 January, 2013
, ..... ] 等等长达 8 年。
请帮我在单个查询中写这个。谢谢
最佳答案
获取您想要的部分日期(在您的情况下为年份和月份)并根据此基数和货币对结果进行分组:
SELECT DATE_FORMAT(rate_date,'%M, %Y') AS rate_month,currency_pair,AVG(rate) AS avg_rate
FROM historical_currencies_rate
WHERE currency_pair='EUR-USD'
GROUP BY DATE_FORMAT(rate_date,'%M, %Y'),currency_pair
ORDER BY rate_month
关于MySQL查询以获取每个月数据的平均值数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24076069/