5
。 </p> コメントで、オンラインで別の答えを見(jiàn)つけました: 一>
列に適切なインデックスが付けられ、そのインデックスがフィルタリングと並べ替えに使用されていることを確認(rèn)してください。説明プランで検証します。リーリー
「中央値」行番號(hào)を計(jì)算します。median_row = Floor(count / 2) を使用するとよいでしょう。
リーリー
これにより、必要な値を含む行が返されるはずです。MariaDB/MySQL の場(chǎng)合:
リーリーSteve Cohen さんは、最初のパスの後、@rownum に合計(jì)行數(shù)が含まれることを指摘しました。これを使用して中央値を決定できるため、2 回目のパスや連結(jié)は必要ありません。
さらに、レコード數(shù)が偶數(shù)の場(chǎng)合に中央値を正しく生成するために、AVG(dd.val)
および dd.row_number IN(...)
が使用されます。推論: