統計分析とデータ解釈では、データセットの中央値を決定することが重要です。 MySQL には平均を計算するための便利な AVG() 関数が用意されていますが、中央値を求めるには別のアプローチが必要です。この記事では、単一の MySQL クエリを使用して中央値を計算するための簡素化されたソリューションを提供します。
MySQL は、PHP で行を並べ替えたり選択したりするより効率的な方法を提供します。
<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>
コード解釈:
このクエリの最適化されたバージョンでは、行カウント操作を使用して 2 番目のパスまたは結合を回避します。
<code class="language-sql">SELECT AVG(dd.val) as median_val FROM ( SELECT d.val, (@rownum:=@rownum+1) as `row_number` -- 性能优化 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((@rownum)/2), FLOOR((@rownum)/2)+1 ) -- 或 FLOOR((@rownum)/2), FLOOR((@rownum)/2)+1 )</code>
MariaDB バージョン 10.3.3 には、組み込みの MEDIAN 関数が含まれています:
<code class="language-sql">SELECT MEDIAN(val) AS median_val FROM data</code>
これらのメソッドを組み合わせることで、MySQL で中央値を計算するための簡単で効率的なソリューションが提供され、開発者がデータから有意義な洞察を簡単に抽出できるようになります。
以上がMySQL で中央値を効率的に計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。