按天聚合MySQL行
我有一个MySQL表,如下所示:按天聚合MySQL行,mysql,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 |
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 |
+------------+----------------+
提前感谢。您可以做两件事,将datetype更改为date,因此只需存储日期(在您的情况下,这可能是不可能的)。 或者可以通过重新设置日期值进行分组,使其仅为日期
select date(date), sum(payment)
from payments
group by date(date)
order by date(date) desc
您可以做两件事,将datetype更改为date,因此只存储日期(在您的情况下,这可能是不可能的)。 或者可以通过重新设置日期值进行分组,使其仅为日期
select date(date), sum(payment)
from payments
group by date(date)
order by date(date) desc
您可以在日期上通过函数调用进行分组,因此将完整的datetime转换为日期部分,并按此进行分组,只要日期在select中,它就应该是合法的 您可以通过日期上的函数调用进行分组,因此将完整日期时间转换为日期部分,并按此进行分组,只要日期在select中,它就应该是合法的
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)
应该可以
应该可以在您的示例中,您按天进行聚合,这比“给几秒钟或几秒钟”容易得多,而且定义得更好。我明白您的意思。编辑以使其更清晰。在您的示例中,您按天进行聚合,这比“几秒钟”更简单,定义也更好。我明白您的意思。编辑以使其更清晰。+1,如果我知道按日期聚合就可以了,这可能是我的答案(请参见对问题的评论);-)+1,如果我知道按日期聚合就可以了,这可能是我的答案(请参见对问题的评论);-)