あるカラムの値について、以下のSQLでヒストグラムが作れます。COLUMN_NAME にはカラム名を指定して下さい。TABLE_NAME にはテーブル名を指定して下さい。BIN_NUM にはビンの数(階級数)を数値で指定して下さい。
WITH stats AS
(
SELECT
MIN(COLUMN_NAME) AS min_COLUMN_NAME,
MAX(COLUMN_NAME) - MIN(COLUMN_NAME) AS range_COLUMN_NAME,
BIN_NUM AS bin_num
FROM TABLE_NAME
),
bins AS
(
SELECT
FLOOR((COLUMN_NAME - min_COLUMN_NAME) / (range_COLUMN_NAME / bin_num)) AS bin
FROM TABLE_NAME, stats
)
SELECT bin, COUNT(bin) AS count
FROM bins
GROUP BY bin
ORDER BY bin ASC
以下のような出力が得られます

内容の解説
WITH式を使って、ヒストグラム作成に必要なデータを集めた一時テーブルを作成しています。WITHで作成された一時テーブルは後続のSELECT内で参照できます。
WITH statsでは最小値やビンの幅を算出しています。WITH binsでは階級値を算出しています。
最後のSELECT 〜で階級値を集約してヒストグラムにしています。
Webエンジニアをやっています
UX/UIデザインからプログラミング、DB設計、SEO、インフラ構築など幅広く対応してます
PHP/PHPUnit/Laravel/Vue/Nuxt/Docker/Terraform
ご連絡はTwitterのDMまで。
