如何聚合表中的数据点?

时间:2012-12-15 08:24:20

标签: sql statistics aggregate-functions h2

假设我有以下表格 -

CREATE TABLE data_points (t DATETIME PRIMARY KEY, value INTEGER);

我想通过计算表格中每10个点的平均值来汇总数据。

即。如果表有20个数据点,则结果是两个聚合点。第1个聚合点指向1-10个数据点的平均值,11-20个点的第2个。

这是否可以使用SQL查询?

2 个答案:

答案 0 :(得分:0)

你是说这个意思吗?查询在MS SQL服务器中有效。

SELECT AVG([VALUE]) OVER (PARTITION by par), * 
FROM (
    SELECT ((ROW_NUMBER() OVER(ORDER BY [VALUE]))-1)/10 par, * FROM TableName
)X

答案 1 :(得分:0)

这个似乎在MYSQL中做你想要的。

SELECT 
    avg(value) as `average`, 
    10*FLOOR(value/10) AS `valueBucket`, 
    CONCAT(10*FLOOR(value/10),'-',10*FLOOR(value/10)+9) AS `range`
FROM 
    data_points 
GROUP BY
    valuebucket
;

http://sqlfiddle.com/#!2/b4468/53/0