在MySQL中有AVG功能时,没有中位数。所以我需要创建一种计算销售数据的中位数值的方法。
我知道中位数是中间价值。但是,我不清楚如何处理不是奇数列表的列表。如何确定选择哪个值作为中位数,还是需要进一步计算才能确定?谢谢!
答案 0 :(得分:0)
我喜欢包含一个明确的ORDER BY语句:
SELECT t1.val as median_val
FROM(
SELECT @rownum:= @ rownum + 1为row_number
,d.val
FROM data d,(SELECT @rownum:= 0)r
在哪里1
- 在这里放一些where子句
订购d.val
)作为t1,
( SELECT count(*)为total_rows 来自数据d 在哪里1 - 在这里放置相同的where子句 )作为t2 在哪里1 AND t1.row_number = floor(total_rows / 2)+1;