2010-05-06 47 views
1

我每分鐘測量DNS服務器上的負載並將其存儲到SQL DB中。我想繪製過去48小時的負載圖表。這是69120(48 * 24 * 60)數據點,但我的圖表只有800像素寬,所以爲了讓事情更快,我希望我的SQL查詢返回僅800個數據點。從SQL查詢返回分段平均值?

在我看來,這似乎是一個非常標準的事情,但我一直在網絡和書籍中尋找這樣的東西一段時間,最近的我能找到的是一個平均值。我正在尋找更多的「分段平均值」:將約69120個數據點分成800段,然後平均每段。

我的SQL表:

CREATE TABLE measurements (
    ip int, measurement_time int, queries int, query_time float 
) 

我的查詢看起來像這樣

SELECT measurement_time, ip, queries FROM measurements WHERE measurement_time>(time()-172800) 

非常感謝!

回答

2
DECLARE @interval int; 
SET @interval = 87; 
SELECT ip, AVG(queries), (measurement_time/@interval) AS interval 
FROM measurements 
WHERE measurement_time>(time()-172800) 
GROUP BY (measurement_time/@interval) 
ORDER BY (measurement_time/@interval); 
+0

哇!這很快!感謝你們(安德魯和道格)的快速回復! – 2010-05-06 21:41:31

1

總和(查詢)/ 100組由(measurement_time/100)