[英]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.