У меня есть следующие столбцы в MySQL,Расчет Медиана для colums MySQL
Площадь, цена, тип, квартал, год и т.д.
То, что я пытаюсь сделать, это вычислить медиану для каждой области (Juffair, Adliya, Mahooz) в этих условиях.
Типичная строка будет выглядеть как этот
Burhama, 500, Apartment, 3, 2014..
Burhama, 600, Apartment, 3, 2014
Juffair, 800, Apartment, 3, 2014 etc.
То, что я хочу, чтобы это сделать, это отобразить таблицу с (Area - Median). Поэтому он должен взять все Juffair и вычислить медианную. и т. д.
Что это такое: Отображение каждой отдельной области (дубликатов) с ее ценой рядом с ней.
Перемещение по петлям, я получаю его для отображения, только область, но вычисляет медианы по всей области, а не только по той, которую она допускает.
Любая помощь будет оценена по достоинству.
<?php
function calculate_median($arr) {
sort($arr);
$count = count($arr); //total numbers in array
$middleval = floor(($count-1)/2); // find the middle value, or the lowest middle value
if($count % 2) { // odd number, middle is the median
$median = $arr[$middleval];
} else { // even number, calculate avg of 2 medians
$low = $arr[$middleval];
$high = $arr[$middleval+1];
$median = (($low+$high)/2);
}
return $median;
}
?>
<?php
$array = array('Juffair', 'Adliya', 'Mahooz', 'Burhama' , 'Manama');
$price = array();
//connect
$data = mysql_query("SELECT * FROM stats
WHERE `rentsale` = 'Rent'
and `type` = 'Apartment'
and `area` IN('".implode("', '", $array)."')
and `beds` = '2'
and `quarter` = '3'
and `year` = '2014'")
//die
while($info = mysql_fetch_array($data)) {
$area = $info['area'];
$array = array('Juffair', 'Adliya', 'Mahooz', 'Burhama' , 'Manama');
foreach($array as $area) {
$price[] = $info['price'];
$home_values_array = $price;
$median_home_value = calculate_median($home_values_array);
}
?>
<table>
<tr>
<TD><?php echo $area; ?></TD>
<TD><?php echo $median_home_value; ?></TD>
</tr>
</table>
<?php
}
?>
Возможно, вы должны сделать это в SQL, вот пример того, как вычислять медианы в любой SQL-RDBMS: http://stackoverflow.com/a/7263925/3227403 – pid
Вы можете использовать SQL для этих вычислений для вас, а не для цикл через результирующие множества. Посмотрите на эти ответы. http://stackoverflow.com/a/1291296/32763 – Loopo
Привет, Было бы здорово, если я только собираюсь запустить несколько запросов, набор результатов находится в сотнях тысяч, и я хотел бы иметь возможность изменять это в скрипте. –