我试图从一张桌子中计算出各种类型数据混合在一起的中位数(我无法修改表格)。第3行和第6行是混合的数据的示例,行1,2,4和5是我合法需要数据的行的示例(WHERE form_id = 1 AND field_id = 1):
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?
的位置答案 0 :(得分: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;