我的表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)