Php 选择不同的月份和年份,然后细分
我正在使用OpenFlashChart创建统计数据,我需要能够做的一件事就是生成一个堆叠条形图 从逻辑上讲,我需要能够对所有不同的月/年组合(2009年12月、2010年1月、2010年2月等)进行分组,然后从该组中分组所有不同的行,即访客提出的不同类型的查询(通过网站、电子邮件、电话) 此时,表属性如下所示:Php 选择不同的月份和年份,然后细分,php,sql,mysql,database,datatable,Php,Sql,Mysql,Database,Datatable,我正在使用OpenFlashChart创建统计数据,我需要能够做的一件事就是生成一个堆叠条形图 从逻辑上讲,我需要能够对所有不同的月/年组合(2009年12月、2010年1月、2010年2月等)进行分组,然后从该组中分组所有不同的行,即访客提出的不同类型的查询(通过网站、电子邮件、电话) 此时,表属性如下所示: SELECT DATE_FORMAT(date_time, '%Y-%m') AS yearmonth, COUNT(*) AS count_month FROM tab
SELECT DATE_FORMAT(date_time, '%Y-%m') AS yearmonth,
COUNT(*) AS count_month
FROM table_name
GROUP BY yearmonth
id(整数,自动递增)
日期时间(日期时间格式)
类型(枚举、访问、网站、电话、电子邮件)
有什么建议吗?我试过一些方法,但运气不太好。像这样的方法应该行得通:
select count(*), type, YEAR(date_time), MONTH(date_time) from `table`
group by type, YEAR(date_time), MONTH(date_time)
像这样的方法应该会奏效:
select count(*), type, YEAR(date_time), MONTH(date_time) from `table`
group by type, YEAR(date_time), MONTH(date_time)
您可以创建一个带有月份字段的表,并根据您感兴趣的月份填充该表,例如:
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
选择
年(月)
,月(mt.StartOfMonth)
,e.类型
,count(*)
从蒙塔布尔山
左联查询
在mt.StartOfMonth上,您可以创建一个带有月份字段的表,并为您感兴趣的月份填充该表,例如:
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
选择
年(月)
,月(mt.StartOfMonth)
,e.类型
,count(*)
从蒙塔布尔山
左联查询
在mt.StartOfMonth上,按年份和月份分组,sql可以如下所示:
SELECT DATE_FORMAT(date_time, '%Y-%m') AS yearmonth,
COUNT(*) AS count_month
FROM table_name
GROUP BY yearmonth
要按年份和月份分组,sql可以如下所示:
SELECT DATE_FORMAT(date_time, '%Y-%m') AS yearmonth,
COUNT(*) AS count_month
FROM table_name
GROUP BY yearmonth
酷,不知道提取(年\月…)
!酷,不知道提取(年\月…)
!