首頁  >  文章  >  資料庫  >  如何在 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