ホームページ  >  記事  >  データベース  >  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;

は過剰な数の行を生成します。データを定義済みのビンにグループ化するには、次の回避策を検討できます:

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。