繁体   English   中英

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

[英]Selecting distinct months and years and then breakdown of values for

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

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

目前,表格属性如下所示:

id(整数,自动递增)date_time(日期时间格式)类型(枚举,访问,网站,电话,电子邮件)

有什么建议么? 我已经尝试了几件事,但没有多大运气。

这样的事情应该起作用:

select count(*), type, YEAR(date_time), MONTH(date_time) from `table` 
group by type, YEAR(date_time), MONTH(date_time)
SELECT  EXTRACT(YEAR_MONTH FROM date_time) AS ym, type, COUNT(*)
FROM    mytable
GROUP BY
        ym, type

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

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

您可以创建一个带有月份字段的表,并在您感兴趣的月份中填充它,例如:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM