5

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

这是我的代码

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 天收到一次报告。

4

2 回答 2

2

YEARWEEK功能可能是您需要按周分组的功能。它有许多选项来定义一周的开始方式或分类的年份。

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

于 2012-11-21T18:33:04.913 回答
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

会好的...

于 2012-11-21T18:34:36.553 回答