国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

MySQL で中央値を計(jì)算する簡(jiǎn)単な方法
P粉720716934
P粉720716934 2023-08-29 11:47:07
0
2
1522
<p>MySQL を使用して中央値を計(jì)算する最も簡(jiǎn)単な (遅すぎないことが望ましい) 方法は何ですか? <code>AVG(x)</code> を使用して平均値を求めていますが、中央値を計(jì)算する簡(jiǎn)単な方法を見(jiàn)つけるのに苦労しています?,F(xiàn)在、すべての行を PHP に返し、ソートしてから中央の行を選択していますが、これを 1 つの MySQL クエリで行う簡(jiǎn)単な方法が必要です。 </p> <p>データ例:</p> <pre class="brush:php;toolbar:false;">id | val -------- 1 4 2 7 3 2 4 2 5 9 6 8 7 3</pre> <p><code>val</code> をソートすると、<code>2 2 3 4 7 8 9</code> が得られるため、中央値は <code>4</code> になるはずです。 ;SELECT AVG(val) == 5。 </p>
P粉720716934
P粉720716934

全員に返信(2)
P粉041881924

コメントで、オンラインで別の答えを見(jiàn)つけました: 一>

列に適切なインデックスが付けられ、そのインデックスがフィルタリングと並べ替えに使用されていることを確認(rèn)してください。説明プランで検証します。

リーリー

「中央値」行番號(hào)を計(jì)算します。

median_row = Floor(count / 2) を使用するとよいでしょう。

次に、リストからそれを選択します:

リーリー

これにより、必要な値を含む行が返されるはずです。

P粉041758700

MariaDB/MySQL の場(chǎng)合:

リーリー

Steve Cohen さんは、最初のパスの後、@rownum に合計(jì)行數(shù)が含まれることを指摘しました。これを使用して中央値を決定できるため、2 回目のパスや連結(jié)は必要ありません。

さらに、レコード數(shù)が偶數(shù)の場(chǎng)合に中央値を正しく生成するために、AVG(dd.val) および dd.row_number IN(...) が使用されます。推論:

リーリー

最後に、MariaDB 10.3.3 には MEDIAN 関數(shù)が含まれています

最新のダウンロード
詳細(xì)>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート