ホームページ > データベース > mysql チュートリアル > MySQL で中央値を効率的に計算するにはどうすればよいですか?

MySQL で中央値を効率的に計算するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-20 15:17:12
オリジナル
413 人が閲覧しました

How Can I Efficiently Calculate the Median in MySQL?

MySQL での簡略化された中央値計算

MySQL では中央値 (一連の数値データの中央値) を計算するのが難しい場合があります。 AVG(x) を使用して平均を計算するのは簡単ですが、中央値を求めるにはより複雑なアプローチが必要です。

MySQL 実装

中央値の計算を簡略化するために、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>
ログイン後にコピー

説明

このクエリは次の手法を使用します:

  • 行カウンター @rownum と合計行数 @total_rows を初期化して、並べ替えられたデータ内の各行の位置を追跡します。
  • FLOOR((@total_rows 1) / 2)FLOOR((@total_rows 2) / 2) に対応する値を平均して中央値 (偶数データセットの場合) を計算します。
  • MariaDB 10.3.3 では、MEDIAN 関数を使用して中央値を直接計算するオプションがあります。

以上がMySQL で中央値を効率的に計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート