Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Mencipta Histogram dalam MySQL dengan Selang Pratakrif?

Bagaimana untuk Mencipta Histogram dalam MySQL dengan Selang Pratakrif?

Barbara Streisand
Barbara Streisandasal
2024-10-26 17:47:02617semak imbas

How to Create Histograms in MySQL with Predefined Intervals?

Pengeluaran Data Histogram dalam MySQL

MySQL secara asalnya menyediakan sokongan terhad untuk binning data ke dalam selang masa yang telah ditetapkan untuk memplot histogram. Walau bagaimanapun, tugasan ini boleh dicapai menggunakan pendekatan yang diubah suai.

Pertanyaan SQL yang anda berikan:

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

menjana bilangan baris yang berlebihan. Untuk mengumpulkan data ke dalam tong yang dipratentukan, anda boleh mempertimbangkan penyelesaian berikut:

ROUND(numeric_value, -2) AS baldi,

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

DARI my_table
KUMPULAN MENGIKUT baldi;

Dengan melaraskan kenaikan BULAT, anda boleh menentukan saiz tong. Contohnya, ROUND(numeric_value, -2) mengumpulkan data ke dalam baldi 100 (-200 hingga -100, -100 hingga 0, dsb.).

Mengubah suai offset dalam operasi ROUNDing memastikan baldi pertama mengandungi seberapa banyak elemen sebagai baldi berikutnya. Untuk ROUND(numeric_value, -1), numeric_value dalam julat [0,4] (5 elemen) akan diletakkan dalam baldi pertama, manakala [5,14] (10 elemen) dalam kedua, [15,24] dalam ketiga, melainkan numeric_value diimbangi dengan sewajarnya melalui ROUND(numeric_value - 5, -1).

Sebagai contoh, pertanyaan berikut menjana histogram dengan penskalaan bar logaritma:

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

Pendekatan ini menyediakan kaedah yang cepat dan boleh disesuaikan untuk mencipta histogram dalam MySQL, membolehkan penyesuaian mudah kepada kes penggunaan tertentu.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Histogram dalam MySQL dengan Selang Pratakrif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn