MySql Avg运行时数据限制行数

时间:2012-12-24 07:21:07

标签: mysql

我正在使用一个无法渲染(生成图形)信息的工具,如果它包含超过1000个数据点,那么假设我的mysql查询返回大约5000个数据点,那么我必须将这5000个数据点转换为1000通过取所有值的平均值来指出。这个转换率5000/1000 = 5,我必须在运行时决定。有什么方法可以根据数据大小和列名称对数据进行分组/平均,而不仅仅是列名。

提前致谢

1 个答案:

答案 0 :(得分:0)

使用自动增量字段排序

user113215所说的(SELECT AVG(data) FROM ... GROUP BY rownum % 1000)是有意义的,除了如果有5050行,将有50行,每行平均为6行,而其他950则是每行5行的平均值。你想怎么处理这个案子?而是将它们均匀地分成5050/6行?如果是这样,我建议你运行2个查询,第一个就是:

SELECT SUM(*)/(CEIL(SUM(*))/1000) FROM YourTable

你输出的变量存储在一个变量中,用于在下一个查询中使用mod。

% 1000的替代方案只是/ 5,因此您可以改为平均连续行。

您通常应该为表提供自动增量主键,这样可以使此解决方案足够简单。

自定义排序

我认为this正是您想要的。