2009-06-02 2 views
34

Быстрого вопроса, у меня есть следующая таблицаMySQL выберите группу суммы по дате

+-------------+---------------------+ 
| 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 Feb-> 88.2 Apr-> 29.84

Любые подсказки об этом. Благодаря

ответ

61

Это решение даст вам название месяца в колонке вашего результирующий, а затем в целом по мере необходимости.

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

Вы можете также добавить год в списке выбора -> YEAR (o_date) –

+1

Или, чтобы получить его в указанном вами формате, вы можете сделать SELECT CONCAT (MONTHNAME (o_date), '->', SUM (всего)) –

+0

Очень полезно! и u может добавлять столбцы в группу по –

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

Это предполагает, что вы хотите месяцев в разные годы сгруппированы отдельно –

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

Насколько я помню из прошлой жизни MySQL запрос как

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

использует индекс на o_date поле (которое, к сожалению, я не гарантировало бы для YEAR() и MONTH()).

Вы должны отформатировать month поле, хотя и это не будет, скорее всего, будут индексироваться в любой другой системе базы данных ...

0

Попробуйте Group BY, как это:

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

да работа для меня таким образом:

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

Но мне нужно только показать результат этого года (2014), как я могу это сделать?

+1

. Задайте отдельный вопрос, если у вас возникла проблема с чем-то – Illidanek

2

Получить месяц и год мудрые данные из базы данных MySQL:

SELECT MONTHNAME(o_date), YEAR(o_date), SUM(total) 
FROM the_table 
GROUP BY YEAR(date), MONTH(date) 
Смежные вопросы