Выбор отдельных месяцев и лет, а затем разбивка значений для - PullRequest
0 голосов
/ 09 февраля 2010

Я использую Open Flash Chart для создания статистики, и одна из вещей, которые мне нужно сделать, это сгенерировать столбчатую диаграмму с накоплением.

По логике мне нужно иметь возможность группировать все различные комбинации месяца / года, декабрь 2009, январь 2010, февраль 2010 и т. Д., А затем из этой группы все различные строки, то есть различные типы запросов, которые посетитель сделал (через веб-сайт, по электронной почте, по телефону)

на данный момент атрибуты таблицы выглядят так:

id (int, автоинкремент) date_time (формат даты и времени) тип (перечисление, посещение, веб-сайт, телефон, электронная почта)

Есть предложения? Я перепробовал несколько вещей и мне не повезло.

Ответы [ 4 ]

1 голос
/ 09 февраля 2010

Для группировки по годам и месяцам sql может выглядеть следующим образом:

SELECT DATE_FORMAT(date_time, '%Y-%m') AS yearmonth, 
       COUNT(*) AS count_month
FROM table_name 
GROUP BY yearmonth
1 голос
/ 09 февраля 2010
SELECT  EXTRACT(YEAR_MONTH FROM date_time) AS ym, type, COUNT(*)
FROM    mytable
GROUP BY
        ym, type
1 голос
/ 09 февраля 2010

Примерно так должно работать:

select count(*), type, YEAR(date_time), MONTH(date_time) from `table` 
group by type, YEAR(date_time), MONTH(date_time)
0 голосов
/ 09 февраля 2010

Вы можете создать таблицу с полем месяца и заполнить ее интересующими вас месяцами, например:

StartOfMonth
2010-01-01
2010-02-01
2010-03-01
...

Затем вы можете использовать left join для группировки по всем месяцам:

select     
    year(mt.StartOfMonth)
,   month(mt.StartOfMonth)
,   e.type
,   count(*)
from       MonthTable mt
left join  Enquiries e
on         mt.StartOfMonth <= e.EnquiryDate
           and e.EnquiryDate < mt.StartOfMonth + interval 1 month
where      mt.StartOfMonth <= NOW()
group by   year(mt.StartOfMonth), month(mt.StartOfMonth), e.type
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...