聚合特定的行数

时间:2012-05-15 08:40:57

标签: mysql sql

我有一个包含很多行的数据库,我想连续聚合10行并计算一列的平均值。因此第1行到第10行将是平均值no。一,第11到第20行将是平均值no。二,等等。

可以在MySql中完成吗?

2 个答案:

答案 0 :(得分:2)

您需要GROUP BY FLOOR(something/10)对每10行进行分组。没有间隙的主要自动增量密钥对此最好。

SELECT FLOOR(something/10) as start_id, AVG(yourAmount)
FROM yourTable
GROUP BY FLOOR(something/10)

答案 1 :(得分:0)

我设法通过在一个简单查询中使用别名和组/顺序来解决排序问题。

SELECT FLOOR(id/10) AS id_tmp, id AS sorter, AVG(col_1) AS col_1_avg 
FROM my_table
GROUP BY id_tmp
ORDER BY sorter DESC

我不确定为什么会这样,但是在MySQL 5.0中它无论如何都能正常工作。