我有一个包含很多行的数据库,我想连续聚合10行并计算一列的平均值。因此第1行到第10行将是平均值no。一,第11到第20行将是平均值no。二,等等。
可以在MySql中完成吗?
答案 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中它无论如何都能正常工作。