SQL - 平均每月金额
SQL - Average monthly amount
我有一个包含 "amount" 和 "date" 列的 table,我想按月显示平均值。
table 看起来像这样:
amount | date |
100 | 2017-04-22 20:39:24 |
300 | 2017-04-25 16:14:08 |
200 | 2017-04-28 17:51:16 |
100 | 2017-05-29 05:46:42 |
100 | 2017-05-08 16:15:13 |
100 | 2017-05-09 22:06:45 |
400 | 2017-06-10 10:57:34 |
500 | 2017-06-11 15:57:14 |
900 | 2017-06-14 16:02:36 |
这是我的:
SELECT AVG(amount) AS avg_amount, date
FROM table
GROUP BY date
它按天显示平均值,所以它最终看起来与第一个 table 完全一样,但没有 hour/minute/second 部分,而我希望它看起来像这样:
avg_amount | date |
200 | April |
100 | May |
600 | June |
GROUP BY MONTH(date)
查看 date and time functions in MySQL or in PostgreSQL extract 函数。
我喜欢 TOvidiu 的回答,但这只有在您拥有一年的数据时才有效。我会建议
SELECT AVG(amount) AS avg_amount, date
FROM table
GROUP BY YEAR(date), MONTH(date)
我有一个包含 "amount" 和 "date" 列的 table,我想按月显示平均值。
table 看起来像这样:
amount | date |
100 | 2017-04-22 20:39:24 |
300 | 2017-04-25 16:14:08 |
200 | 2017-04-28 17:51:16 |
100 | 2017-05-29 05:46:42 |
100 | 2017-05-08 16:15:13 |
100 | 2017-05-09 22:06:45 |
400 | 2017-06-10 10:57:34 |
500 | 2017-06-11 15:57:14 |
900 | 2017-06-14 16:02:36 |
这是我的:
SELECT AVG(amount) AS avg_amount, date
FROM table
GROUP BY date
它按天显示平均值,所以它最终看起来与第一个 table 完全一样,但没有 hour/minute/second 部分,而我希望它看起来像这样:
avg_amount | date |
200 | April |
100 | May |
600 | June |
GROUP BY MONTH(date)
查看 date and time functions in MySQL or in PostgreSQL extract 函数。
我喜欢 TOvidiu 的回答,但这只有在您拥有一年的数据时才有效。我会建议
SELECT AVG(amount) AS avg_amount, date
FROM table
GROUP BY YEAR(date), MONTH(date)