首页  >  文章  >  数据库  >  如何在 MySQL 中创建具有预定义间隔的直方图?

如何在 MySQL 中创建具有预定义间隔的直方图?

Barbara Streisand
Barbara Streisand原创
2024-10-26 17:47:02617浏览

How to Create Histograms in MySQL with Predefined Intervals?

MySQL 中的直方图数据提取

MySQL 本身对将数据分箱到预定义间隔以进行直方图绘制提供有限的支持。但是,可以使用修改后的方法来完成此任务。

您提供的 SQL 查询:

select total, count(total) from faults GROUP BY total;

生成过多的行。要将数据分组到预定义的 bin 中,您可以考虑以下解决方法:

ROUND(numeric_value, -2) AS 存储桶,

   COUNT(*)                    AS COUNT,
   RPAD('', LN(COUNT(*)), '*') AS bar

FROM my_table
GROUP BY 存储桶;

通过调整舍入增量,您可以定义 bin 大小。例如,ROUND(numeric_value, -2) 将数据分组为 100 个桶(-200 到 -100、-100 到 0 等)。

修改 ROUND 操作中的偏移量可确保第一个桶包含与后续存储桶一样多的元素。对于 ROUND(numeric_value, -1),[0,4] 范围内的 numeric_value(5 个元素)将被放置在第一个存储桶中,而 [5,14](10 个元素)将被放置在第二个存储桶中,[15,24] 将被放置在第二个存储桶中。第三,除非 numeric_value 通过 ROUND(numeric_value - 5, -1) 适当偏移。

作为示例,以下查询生成具有对数条形缩放的直方图:

SELECT ROUND(total, -2)    AS bucket,
       COUNT(*)                    AS COUNT,
       RPAD('', LN(COUNT(*)), '*') AS bar
FROM   faults
GROUP  BY bucket;

这种方法提供了一种在 MySQL 中创建直方图的快速且适应性强的方法,允许轻松定制特定用例。

以上是如何在 MySQL 中创建具有预定义间隔的直方图?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn