用SQL计算每天的总结果


Counting total per day with my result in SQL

我的表Orders中有50行/条目。我有一个列,用于保存在以下位置的订单,命名为claimed_at

该字段中的日期格式为:2011-10-03 07:07:33

格式为(年月日/年月日)。

我还有一列price,这个price是他们支付的钱。

我想显示每天的总数。

因此,对于日期2011-10-03的6个订单,应该取6个订单的price值,并将它们加在一起。

所以我可以显示:

2011-10-03  -- Total: 29292 Euros
2011-10-02  -- Total: 222 Euros
2011-09-28  -- Total: 4437 Euros

我该怎么做?

你需要使用MySQL的聚合功能和一些日期转换。

SELECT DATE(claimed_at) AS day
    , SUM(price) AS total
FROM Orders
GROUP BY day

创建一个新的字段,例如day, DATE_FORMAT(claimed_at,'%Y-%m-%d')作为day,按天计算价格和分组,这样你就会得到你想要的结果。

比如

SELECT DATE_FORMAT(claimed_at,'%Y-%m-%d') AS day,SUM(price) as total FROM orders GROUP BY day ORDER BY day DESC

像这样使用分组:

SELECT claimed_at, SUM(price) AS total 
FROM Orders 
GROUP BY claimed_at

在分组中,您需要使用函数来获取日期部分(而不是时间)。我不知道哪个函数在mysql中使用,在MSSQL中它的CONVERT()函数。

SELECT TRUNC(claimed_at), SUM(PRICE) 
FROM my_orders_table 
GROUP BY TRUNC(claimed_at)