2012-11-21 66 views
5

在工作中,我们需要生成6个月大的报告。基本上,从5月1日到11月1日,报告必须以每周为基础。到目前为止,我只能够一个星期做手工,在一次...DAYOFWEEK,每个星期天

这是我的代码

SELECT displayname, capture_time, 
     satisfied_load_time AS load_time, 
     satisfied_response_time AS apdex_response_time 

FROM session_page_summary, page, apdex_value 

WHERE displayname LIKE 'xyz%'  
     AND capture_time >= '2012-11-01 00:00:00' 
     AND capture_time <= '2012-11-07 00:00:00'  
     AND page.page_id = session_page_summary.page_id  
     AND page.page_id = apdex_value.page_id 

GROUP BY displayname 
ORDER BY displayname 

我去掉了一些长码的只是为了使它看起来稍微好一点。

结果是...

displayname capture_time loadtime responsetime   
>xyz-a   11/7/2012  0.12  1.34 
>xyz-b   11/7/2012  0.83  2.92 
>xyz-c   11/7/2012  0.56  1.02 

我怎样才能得到含有6个月的数据,这样的结果?

displayname capture_time loadtime responsetime   
>xyz-a   11/7/2012  0.72  1.82 
>xyz-b   11/15/2012 1.23  1.01 
>xyz-c   11/22/2012 2.83  0.78 

每7天我收到一份报告。

+0

尼斯清楚的问题:) –

+0

@JeremySmyth FWIW,在我看来,一个清晰的问题通常包括数据集和期望的结果,对如何一个简短的说明将从另一个派生:-( – Strawberry

回答

2

YEARWEEK功能可能是您需要逐周分组的功能。它有多个选项来定义一周的开始时间或它被分类的年份。

您的查询也将受益于使用BETWEEN运算符。 x BETWEEN a AND b通常比x > a AND x < b更高效。

+0

感谢您对tadman的快速响应,但是,我仍然对MySQL很新,我不确定语法或应该如何应用YEARWEEK函数,我相信我应该把它放在SELECT语句中?除此之外,我迷失在如何继续下一步 任何指针都会被赞赏! – InPhamouZ

+0

它会像'GROUP BY显示名称, YEARWEEK(capture_time)'。当我将您直接链接到手册页条目时,如何确定语法?请先阅读文档。 – tadman

+0

谢谢tadman,我没有意识到YEARWEEK被链接了,仍然试图习惯网站的格式,再次感谢! – InPhamouZ

0
SELECT displayname, capture_time, 
satisfied_load_time AS load_time, 
satisfied_response_time AS apdex_response_time 
FROM session_page_summary sps, page p, apdex_value av 
WHERE displayname LIKE 'xyz%'  
AND page.page_id = session_page_summary.page_id  
AND page.page_id = apdex_value.page_id 
AND capture_time between '2012-11-01 00:00:00'AND '2012-11-07 00:00:00'  
GROUP BY displayname 
ORDER BY displayname 

将被罚款......

+0

嗨切拉,我不确定这个代码与我的代码有什么不同,我很抱歉,如果我想念它。 – InPhamouZ

相关问题