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”值指定字符串。让我知道它是如何工作的:)