찾다

 >  Q&A  >  본문

MySQL을 사용하여 중앙값을 계산하는 간단한 방법

<p>MySQL을 사용하여 중앙값을 계산하는 가장 간단한(너무 느리지 않기를 바라는) 방법은 무엇입니까? 평균을 찾기 위해 <code>AVG(x)</code>를 사용하고 있지만 중앙값을 계산하는 쉬운 방법을 찾는 데 어려움을 겪고 있습니다. 지금은 모든 행을 PHP로 반환하고 정렬한 다음 중간 행을 선택하고 있지만 단일 MySQL 쿼리에서 이를 수행할 수 있는 쉬운 방법이 있을 것입니다. </p> <p>예제 데이터:</p> <pre class="brush:php;toolbar:false;">id 값 | -------- 1 4 2 7 3 2 4 2 5 9 6 8 7 3</pre> <p>Sort <code>val</code>는 <code>2 2 3 4 7 8 9</code>를 제공하므로 중앙값은 <code>4</code>이어야 하며 <code> ;SELECT AVG(값) == <코드>5. </p>
P粉720716934P粉720716934482일 전924

모든 응답(2)나는 대답할 것이다

  • P粉041881924
  • P粉041758700

    P粉0417587002023-08-30 10:24:09

    MariaDB/MySQL:

    으아악

    Steve Cohen은 첫 번째 패스 이후 @rownum에 총 행 수가 포함된다는 점을 지적했습니다. 이는 중앙값을 결정하는 데 사용될 수 있으므로 두 번째 패스나 연결이 필요하지 않습니다.

    또한 AVG(dd.val)dd.row_number IN(...)은 레코드 수가 짝수일 때 중앙값을 올바르게 생성하는 데 사용됩니다. 추론:

    으아악

    마지막으로 MariaDB 10.3.3+에는 MEDIAN 기능이 포함되어 있습니다

    회신하다
    0
  • 취소회신하다