我有一个像这样的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 |
+------------+----------------+
提前致谢。
答案 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)
您可以通过日期中的函数调用进行分组,因此将完整的日期时间转换为日期部分和组,只要日期在选择中,它应该是合法的。