ホームページ >データベース >mysql チュートリアル >MySQL で事前定義された間隔でヒストグラムを作成する方法
MySQL でのヒストグラム データの抽出
MySQL は、ヒストグラム プロットのために事前定義された間隔にデータをビニングするための限定的なサポートをネイティブに提供します。ただし、このタスクは、修正されたアプローチを使用して達成できます。
指定した SQL クエリ:
select total, count(total) from faults GROUP BY total;
は過剰な数の行を生成します。データを定義済みのビンにグループ化するには、次の回避策を検討できます:
ROUND(numeric_value, -2) AS Bucket,
COUNT(*) AS COUNT, RPAD('', LN(COUNT(*)), '*') AS bar
FROM my_table
GROUP BY Bucket;
ROUND の増分を調整することで、ビンのサイズを定義できます。たとえば、ROUND(numeric_value, -2) は、データを 100 のバケットにグループ化します (-200 から -100、-100 から 0 など)。
ROUND 操作でオフセットを変更すると、最初のバケットが後続のバケットと同じ数の要素が含まれます。 ROUND(numeric_value, -1) の場合、範囲 [0,4] (5 要素) の numeric_value が最初のバケットに配置され、[5,14] (10 要素) が 2 番目のバケットに配置され、[15,24] が 2 番目のバケットに配置されます。 3 番目に、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 中国語 Web サイトの他の関連記事を参照してください。