AFAIU.
This answer @velcrow는 중간 값을 성공적으로 계산합니다. 불행히도 2 개의 중간 행의 평균값을 계산하는 대신 행 수가 짝수 일 때 쿼리는 두 번째 값을 반환합니다. 나는 당신의 요구에 맞게 쿼리 수정의 몇했습니다 :
--average value for middle rows
SELECT avg(t1.price) as median_val FROM (
SELECT @rownum:[email protected]+1 as `row_number`, d.price
FROM mediana d, (SELECT @rownum:=0) r
WHERE 1
-- put some where clause here
ORDER BY d.price
) as t1,
(
SELECT count(*) as total_rows
FROM mediana d
WHERE 1
-- put same where clause here
) as t2
WHERE 1
--this condition should return one record for odd number of rows and 2 middle records for even.
AND t1.row_number>=total_rows/2 and t1.row_number<=total_rows/2+1;
Test on sample data on sqlfiddle
당신이 sqlfiddle 이것을 설명 할 수 있습니까? –
링크 된 질문에서 가장 많이 투표 한 (받아 들일 수없는) 대답을 시도해 보셨습니까? [실행 예] (http://sqlfiddle.com/#!2/fbd31/6) –
http://sqlfiddle.com/#!2/b3fe7e/1 – Alex