mysql按日期选择总和组

时间:2009-06-02 02:13:01

标签: mysql select group-by

快速提问,我有下表

+-------------+---------------------+
| total       | o_date              |
+-------------+---------------------+
|          35 | 01-11-2009 19:32:44 | 
|        41.5 | 01-12-2009 22:33:49 | 
|        61.5 | 01-23-2009 22:08:24 | 
|          66 | 02-01-2009 22:33:57 | 
|       22.22 | 02-01-2009 22:37:34 | 
|       29.84 | 04-20-2009 15:23:49 | 
+-------------+---------------------+

我想将每个月的总数加起来并按月分组。例如, Jan-> 138 2月 - > 88.2 Apr-> 29.84

关于它的任何线索。感谢

8 个答案:

答案 0 :(得分:70)

此解决方案将为您提供月份名称作为结果集的列,然后根据需要提供总计。

SELECT MONTHNAME(o_date), SUM(total) 
FROM theTable
GROUP BY YEAR(o_date), MONTH(o_date)

答案 1 :(得分:7)

select year(o_date), month(o_date), sum(total)
from table
group by year(o_date), month(o_date);

答案 2 :(得分:3)

我从过去的MySQL生活中回忆起像

这样的查询
  

SELECT LEFT(o_date, 7) month, SUM(total) FROM TABLE group BY month

正在使用o_date字段上的索引(遗憾的是我不保证YEAR()MONTH())。

您必须格式化month字段,这很可能不会在任何其他数据库系统上编入索引...

答案 3 :(得分:3)

从MySQL数据库获取月份和年度数据:

SELECT MONTHNAME(o_date), YEAR(o_date), SUM(total) 
FROM the_table 
GROUP BY YEAR(date), MONTH(date)

答案 4 :(得分:2)

SELECT SUM(total)
FROM table
GROUP BY MONTH(o_date)

答案 5 :(得分:0)

尝试Group BY,如下所示:

select count(A_id) As Tid,Day(CrDate) from Ap Group By Day(CrDate)

答案 6 :(得分:0)

这样对我工作:

SELECT MONTHNAME(date), SUM(`in`) as SOMA, date FROM transactions GROUP BY YEAR(date), MONTH(date)

但我只需要显示今年(2014年)的结果我该怎么做?

答案 7 :(得分:0)

SELECT year(FROM_UNIXTIME(created)) year, month(FROM_UNIXTIME(created)) month, sum(amount) total
FROM {my_table}
GROUP BY year, month
ORDER BY year, month;