Heim  >  Artikel  >  Datenbank  >  Wie erstelle ich Histogramme in MySQL mit vordefinierten Intervallen?

Wie erstelle ich Histogramme in MySQL mit vordefinierten Intervallen?

Barbara Streisand
Barbara StreisandOriginal
2024-10-26 17:47:02617Durchsuche

How to Create Histograms in MySQL with Predefined Intervals?

Histogramm-Datenextraktion in MySQL

MySQL bietet nativ begrenzte Unterstützung für die Einteilung von Daten in vordefinierte Intervalle für die Histogrammdarstellung. Diese Aufgabe kann jedoch mit einem modifizierten Ansatz gelöst werden.

Die von Ihnen bereitgestellte SQL-Abfrage:

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

erzeugt eine übermäßige Anzahl von Zeilen. Um Daten in vordefinierte Bins zu gruppieren, können Sie die folgende Problemumgehung in Betracht ziehen:

ROUND(numeric_value, -2) AS Bucket,

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

FROM my_table
GROUP BY Bucket;

Durch Anpassen des RUNDUNGSinkrements können Sie die Bin-Größen definieren. Beispielsweise gruppiert ROUND(numerischer_Wert, -2) Daten in Buckets von 100 (-200 bis -100, -100 bis 0 usw.).

Durch Ändern des Offsets in der RUNDUNG-Operation wird sichergestellt, dass der erste Bucket enthält so viele Elemente wie nachfolgende Buckets. Für ROUND(numerischer_Wert, -1) wird der numerische_Wert im Bereich [0,4] (5 Elemente) im ersten Bucket platziert, während [5,14] (10 Elemente) im zweiten und [15,24] im Drittens, es sei denn, numeric_value wird über ROUND(numeric_value - 5, -1) entsprechend versetzt.

Als Beispiel generiert die folgende Abfrage ein Histogramm mit logarithmischer Balkenskalierung:

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

Dieser Ansatz bietet eine schnelle und anpassungsfähige Methode zum Erstellen von Histogrammen in MySQL, die eine einfache Anpassung an bestimmte Anwendungsfälle ermöglicht.

Das obige ist der detaillierte Inhalt vonWie erstelle ich Histogramme in MySQL mit vordefinierten Intervallen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn