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