Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在表中聚合数据点?_Sql_Statistics_Aggregate Functions_H2 - Fatal编程技术网

Sql 如何在表中聚合数据点?

Sql 如何在表中聚合数据点?,sql,statistics,aggregate-functions,h2,Sql,Statistics,Aggregate Functions,H2,假设我有下表- CREATE TABLE data_points (t DATETIME PRIMARY KEY, value INTEGER); 我想通过计算表中每10个点的平均值来聚合数据 i、 e.如果表格有20个数据点,则结果为两个聚合点。第一个聚合点是1-10个数据点的平均值,第二个聚合点是11-20个数据点的平均值 这可以使用SQL查询吗?您的意思是?查询在MS SQL server中工作 SELECT AVG([VALUE]) OVER (PARTITION by par), *

假设我有下表-

CREATE TABLE data_points (t DATETIME PRIMARY KEY, value INTEGER);
我想通过计算表中每10个点的平均值来聚合数据

i、 e.如果表格有20个数据点,则结果为两个聚合点。第一个聚合点是1-10个数据点的平均值,第二个聚合点是11-20个数据点的平均值


这可以使用SQL查询吗?

您的意思是?查询在MS SQL server中工作

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

这一个似乎在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
;

@PederN将数据分成10组,并对每组数据运行avg()函数。这是用于哪个数据库的?MS Sql server。哪个是你的数据库?H2。但没关系。我将理解查询并修改语法,使其在H2上运行。一旦这个答案生效,我会将它标记为选中。谢谢。请查看链接以了解有关函数的信息。我认为此解决方案非常通用。。我认为主要的区别在于如何为“range”值指定字符串。让我知道它是如何工作的:)