MySQL에서 중앙값을 계산하는 쉬운 방법
P粉960525583
P粉960525583 2023-08-20 18:05:23
0
2
620
<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><code>val</code>로 정렬하면 <code>2 2 3 4 7 8 9</code>가 나오므로 중앙값은 <code>4</code>가 되어야 합니다. ;code>SELECT AVG(val)는 5와 같습니다. </p>
P粉960525583
P粉960525583

모든 응답(2)
P粉738248522

방금 온라인 댓글에서 또 다른 답변을 찾았습니다.

열의 색인이 제대로 작성되었는지, 색인이 필터링 및 정렬에 사용되는지 확인하세요. 실행 계획을 통해 검증합니다.

으아악

"중앙값" 행 번호를 계산합니다. 사용 가능: median_row = floor(count / 2).

그런 다음 목록에서 선택하세요.

으아악

원하는 값이 반환되어야 합니다.

P粉195200437

MariaDB/MySQL에서:

으아악

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

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

으아악

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

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿