每天聚合MySQL行

时间:2010-03-31 09:44:33

标签: mysql

我有一个像这样的MySQL表:

Payments
+----+---------------------+---------+
| id | date (sorted DESC)  | payment |
+----+---------------------+---------+
|  5 | 2010-03-26 00:00:01 |  100.00 |
|  4 | 2010-03-19 00:00:02 |   55.12 |
|  3 | 2010-03-19 00:00:01 |   20.00 |
|  2 | 2010-03-12 00:00:02 |  320.00 |
|  1 | 2010-03-12 00:00:01 |   64.56 |
+----+---------------------+---------+

如何按天汇总付款总额?

付款会每周插入到表格中,但它们并不总是与您看到的完全相同。白天聚合可以在MySQL本地完成吗?

期望的结果是:

+------------+----------------+
| date       | total payments |
+------------+----------------+
| 2010-03-26 |         100.00 |
| 2010-03-19 |          75.12 |
| 2010-03-12 |         384.56 |
+------------+----------------+

提前致谢。

3 个答案:

答案 0 :(得分:3)

您可以执行两项操作,将日期类型更改为日期,因此只需存储日期(在您的情况下可能无法实现)。 或者你可以通过改革日期值进行分组,使它只是日期。

select date(date), sum(payment)
from payments
group by date(date)
order by date(date) desc

答案 1 :(得分:1)

SELECT CONVERT(VARCHAR(10), date , 102) as date,sum(payment ) as total_payment
FROM Payments
GROUP BY  CONVERT(VARCHAR(10), date , 102) 
ORDER BY  CONVERT(VARCHAR(10), date , 102)

应该没问题

答案 2 :(得分:0)

您可以通过日期中的函数调用进行分组,因此将完整的日期时间转换为日期部分和组,只要日期在选择中,它应该是合法的。