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