この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:1
ページ更新者:T
更新日時:2019-11-21 10:13:54

タイトル: パーセンタイルの導き方
SEOタイトル: MySQLにおけるパーセンタイルの導き方

この記事の要点
  • MySQL 8 未満でパーセンタイルを計算する SQL
  • MySQL 8 未満は PERCENTILE_CONT がない → GROUP_CONCAT + SUBSTRING_INDEX で代替
  • MySQL 8+ なら PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY col)
  • PostgreSQL も同じ Window 関数が使える

 

以下のSLQを実行することでMySQLでパーセンタイルの導き出すことができます

SELECT
    SUBSTRING_INDEX(
        SUBSTRING_INDEX(
            GROUP_CONCAT(
                t1.val ORDER BY t1.val SEPARATOR ','
            )
            , ',', 90 / 100 * COUNT(*) + 1
        ), ',', - 1
    ) AS `Percentile`
FROM
    test_table AS t1

上記の例では90%を指定しています。