MySQL では中央値 (一連の数値データの中央値) を計算するのが難しい場合があります。 AVG(x) を使用して平均を計算するのは簡単ですが、中央値を求めるにはより複雑なアプローチが必要です。
中央値の計算を簡略化するために、MariaDB/MySQL は次のクエリを提供します。
<code class="language-sql">SELECT AVG(dd.val) as median_val FROM ( SELECT d.val, @rownum:=@rownum+1 as `row_number`, @total_rows:=@rownum FROM data d, (SELECT @rownum:=0) r WHERE d.val is NOT NULL -- 在此处添加任何必要的 WHERE 子句 ORDER BY d.val ) as dd WHERE dd.row_number IN ( FLOOR((@total_rows+1)/2), FLOOR((@total_rows+2)/2) );</code>
このクエリは次の手法を使用します:
FLOOR((@total_rows 1) / 2)
と FLOOR((@total_rows 2) / 2)
に対応する値を平均して中央値 (偶数データセットの場合) を計算します。 以上がMySQL で中央値を効率的に計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。