选择不同的月份和年份,然后分析值

时间:2010-02-09 14:41:40

标签: php sql mysql database datatable

我正在使用Open Flash Chart创建统计数据,我需要做的一件事就是生成堆积条形图。

逻辑上,我需要能够对所有不同的月/年组合,2009年12月,2010年1月,2010年2月等进行分组,然后从该组中分组所有不同的行,即访客所做的不同类型的查询(通过网站,通过电子邮件,通过电话)

目前表属性如下所示:

id(int,auto increment) date_time(日期时间格式) 类型(枚举,访问,网站,电话,电子邮件)

有什么建议吗?我尝试了一些事情并没有太多运气。

4 个答案:

答案 0 :(得分:1)

这样的事情应该有效:

select count(*), type, YEAR(date_time), MONTH(date_time) from `table` 
group by type, YEAR(date_time), MONTH(date_time)

答案 1 :(得分:1)

SELECT  EXTRACT(YEAR_MONTH FROM date_time) AS ym, type, COUNT(*)
FROM    mytable
GROUP BY
        ym, type

答案 2 :(得分:1)

要按年份和月份分组,sql可能如下所示:

SELECT DATE_FORMAT(date_time, '%Y-%m') AS yearmonth, 
       COUNT(*) AS count_month
FROM table_name 
GROUP BY yearmonth

答案 3 :(得分:0)

您可以创建一个包含月份字段的表格,并将其填入您感兴趣的月份,例如:

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