1. ホーム
  2. mysql

[解決済み] MySQLを使用したパーセンタイル値の計算

2022-02-04 22:31:39

質問

何千もの行を含むテーブルがあり、フィールドの1つである「round」の90パーセンタイルを計算したいのです。

例えば、90パーセンタイルにあるroundの値を選択します。

MySQL でこれを行う簡単な方法は見当たりません。

どなたか、この種の計算を開始する方法について、いくつかの提案をお願いします。

ありがとうございました。

解決方法は?

まず、valueカラムを持つテーブルがあるとします。95パーセンタイル値を持つ行を取得したいとします。言い換えれば、すべての値の95パーセントより大きな値を探していることになります。
ここで簡単な答えを出します。

SELECT * FROM 
(SELECT t.*,  @row_num :=@row_num + 1 AS row_num FROM YOUR_TABLE t, 
    (SELECT @row_num:=0) counter ORDER BY YOUR_VALUE_COLUMN) 
temp WHERE temp.row_num = ROUND (.95* @row_num);