在MySQL 中使用自訂bin 大小建立直方圖
在MySQL 中,提取直方圖資料通常涉及根據預定義bin 大小將資料分組。雖然可以使用 GROUP BY 子句實現基本分組,但指定自訂的 bin 大小卻是一個挑戰。但是,一個簡單的解決方法可以幫助您實現此目標。
考慮以下 SQL 查詢:
<code class="sql">select total, count(total) from faults GROUP BY total;</code>
此查詢會產生詳細數據,但擁有大量行可能會讓人不知所措。要直接在 SQL 中將資料分組到預先定義的 bin 中,您可以利用簡單的方法:
<code class="sql">SELECT ROUND(numeric_value, -2) AS bucket, COUNT(*) AS count, RPAD('', LN(COUNT(*)), '*') AS bar FROM my_table GROUP BY bucket;</code>
調整 ROUND 函數中的捨入增量可讓您自訂 bin 大小。例如,ROUND(numeric_value, -1) 建立大小為 10 的 bin。透過修改舍入增量和初始偏移量,您可以根據您的特定要求自訂 bin 大小。
這裡的技巧是使用 ROUND函數具有適當的偏移量,以確保每個 bin 包含大致相同數量的元素。或者,可以使用 TRUNCATE 來取代 ROUND。
此解決方案提供了一種方便且靈活的方法來在 MySQL 中建立具有自訂 bin 大小的直方圖。對於更進階的直方圖建立技術,請考慮探索 CASE 語句或其他複雜邏輯以增強靈活性。
以上是如何在 MySQL 中建立具有自訂 bin 大小的直方圖?的詳細內容。更多資訊請關注PHP中文網其他相關文章!