2011-10-22 1 views
1

다양한 유형의 데이터가 혼합 된 테이블의 중앙값을 계산하려고합니다 (테이블을 수정할 수 없음). 행 (3) 및 (6)에서 혼합이 데이터의 예로, 행 1, 2, 4, 그리고 5 I 합법적 (WHERE form_id = 1 AND FIELD_ID = 1)로부터 데이터가 필요 행 예 :혼합 데이터 내에서 MySQL로부터 Median을 어떻게 추출합니까?

id form_id field_id value 
1  1   1   200 
2  1   1   290 
3  1   2   'Delicious Bacon' 
4  1   1   320 
5  1   1   120 
6  2   3   9000000 

나는 나는 다음과 같은 사용하여 테이블에서 중간을 유도 할 수 있음을 이해 :

SELECT x.value from form_data x, form_data y 
GROUP BY x.value 
HAVING SUM(SIGN(1-SIGN(y.value-x.value))) = (COUNT(*)+1)/2; 

그러나, 혼합 데이터가 내 SQL 능력을 도전한다. form_id = 1 및 field_id = 1 인 경우에만이 데이터의 중앙값을 어떻게 찾을 수 있습니까?

답변

1

SELECT x.value from form_data x, form_data y 
WHERE x.form_id=1 and x.field_id=1 and y.form_id=and y.field_id=1 
GROUP BY x.value 
HAVING SUM(SIGN(1-SIGN(y.value-x.value))) = (COUNT(*)+1)/2; 
시도
관련 문제