我使用的工具如果包含超过 1000 个数据点则无法呈现(生成图表)信息,因此假设如果我的 mysql 查询返回大约 5000 个数据点,那么我必须通过将这 5000 个数据点转换为 1000 个点所有值的平均值。这个转化率5000/1000 = 5,我得在运行时决定。有什么方法可以根据数据大小和列名对数据进行分组/平均,而不仅仅是列名。
提前致谢
我使用的工具如果包含超过 1000 个数据点则无法呈现(生成图表)信息,因此假设如果我的 mysql 查询返回大约 5000 个数据点,那么我必须通过将这 5000 个数据点转换为 1000 个点所有值的平均值。这个转化率5000/1000 = 5,我得在运行时决定。有什么方法可以根据数据大小和列名对数据进行分组/平均,而不仅仅是列名。
提前致谢
使用自增字段排序
user113215 所说的 ( SELECT AVG(data) FROM ... GROUP BY rownum % 1000
) 是有道理的,除了如果有 5050 行,则将有 50 行,每行 6 行的平均值,而其他 950 行将是每行 5 行的平均值。你想如何处理这个案子?而是将它们均匀地分成 5050/6 行?如果是这样,我建议您运行 2 个查询,第一个查询类似于:
SELECT SUM(*)/(CEIL(SUM(*))/1000) FROM YourTable
您存储在变量中的输出以用于在下一个查询中进行修改。
一种替代方法% 1000
是 just / 5
,这样您就可以取而代之平均连续行。
您通常应该有一个表的自动增量主键,这将使该解决方案足够简单。
自定义排序
我认为这正是你想要的。