23.

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%を指定しています。

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. ダウンロード&インストール方法(Windows)
  2. インストール方法(Linux)
  3. コマンド一覧
  4. SQL
  5. データ型
  6. 関数
  7. 管理ツール
  8. 設定
  9. パフォーマンスチューニング関連
  10. エクスポートおよびインポート
  11. エラー&トラブル
  12. 文字コードの確認
  13. 実行中の SQL の状態確認およびプロセスキルの方法
  14. パスワードの無効化設定
  15. root ユーザーの初期パスワード確認方法
  16. rootユーザーのパスワード変更方法
  17. LIMIT, OFFSET の始まりと挙動
  18. mysqlのバージョン確認方法
  19. 実行計画の表示方法
  20. レプリケーションのステータス確認方法
  21. 中央値の導き方(バージョン8未満)
  22. 階層SQL(バージョン8未満)
  23. パーセンタイルの導き方
  24. 特定スキーマの全テーブルの全カラム情報を取得する方法
  25. MySQLで文字列の置換をする方法