2011-10-22 3 views
1

J'essaye de calculer la médiane d'une table avec différents types de données mélangées ensemble (je ne peux pas modifier la table). Les lignes 3 et 6 sont des exemples de ces données mélangées, et les lignes 1, 2, 4 et 5 sont des exemples de lignes dont j'ai besoin légitimement les données (OÙ form_id = 1 ET field_id = 1):Comment extraire Median de MySQL dans des données mixtes?

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 

Je comprends que je peux tirer médiane d'une table en utilisant les éléments suivants:

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; 

Cependant, les données ont été mélangés à des défis mes capacités SQL. Comment puis-je trouver la médiane de ces données, seulement où form_id = 1 et field_id = 1?

Répondre

1

Essayez cette

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; 
Questions connexes