【发布时间】:2013-07-16 19:12:42
【问题描述】:
尝试在 MYSQL 数据库中查找数组的中位数。
目前,我正在像这样抓取我的数据:
$middleMonth = "SELECT Day, COUNT(Day) AS totalNumber FROM finalbaby GROUP BY Day ORDER BY COUNT(Day) DESC LIMIT 1, 300";
$middleResult = mysql_query($middleMonth);
然后我将它放入这样的数组中。
$names=array();
while($row = mysql_fetch_assoc($middleResult)) {
$names[] = $row['Day'];
然后我试图找到该数组的中位数:
sort($names);
$count = count($names);
$middleval = floor(($count-1)/2);
if($count % 2) {
$median = $names[$middleval];
} else {
$low = $names[$middleval];
$high = $names[$middleval+1];
$median = (($low+$high)/2);
}
return $median;
}
var_dump($names);
我没有收到任何错误,但它使我的应用程序崩溃。
关于我做错了什么有什么建议吗?
【问题讨论】:
-
您跳过第一行而不返回它是否有原因?通常,我们希望使用
LIMIT 0,300包含第一行,而不是使用LIMIT 1,300跳过第一行并返回从第二行开始的行。 -
对不起斯宾塞。固定。
-
您是否在第三个代码块之前将第二个代码中的 while 关闭?
-
我关闭了我最后的时间}
标签: php mysql math mode median