Я новичок в php и sql. Сегодня я поставил себе задачу получить целочисленные значения из базы данных sql, а затем выполнить некоторые основные вычисления. Есть ли еще место, где можно сократить код, продолжая выполнять задачу, или я уже дошел до самого фундаментального уровня? И не перегружаю ли я что-либо в процессе?
Мои цели состояли в том, чтобы;
- Получить значения БД из столбца.
- Получите среднее значение из этого столбца.
- Затем рассчитайте новое среднее значение, исключив самые высокие и самые низкие значения.
Следующим образом моя лучшая попытка;
$con = new MySQLi('localhost', 'user', 'pass', 'db_test') ;
$count = $con->query('SELECT COUNT(SP$) FROM `math`');
$grp = $con->query('SELECT GROUP_CONCAT(SP$) FROM `math`');
$min = $con->query('SELECT MIN(SP$) FROM `math`');
$max = $con->query('SELECT MAX(SP$) FROM `math`');
$sum = $con->query('SELECT SUM(SP$) FROM `math`');
$avg = $con->query('SELECT AVG(SP$) FROM `math`');
$count = $count->fetch_assoc();
$grp = $grp->fetch_assoc();
$min = $min->fetch_assoc();
$max = $max->fetch_assoc();
$sum = $sum->fetch_assoc();
$avg = $avg->fetch_assoc();
$count = $count['COUNT(SP$)'];
$grp = $grp['GROUP_CONCAT(SP$)'];
$min = $min['MIN(SP$)'];
$max = $max['MAX(SP$)'];
$sum = $sum['SUM(SP$)'];
$avg = $avg['AVG(SP$)'];
Отображение и расчеты следующим образом;
echo "Sample Size: " . $count ."</br />";
echo "Display Values:" . $grp ."</br />";
echo "Sum of Values: " . $sum ."</br />";
echo "Average: " . $avg ."</br /></br />";
echo "Now find the new average, by excluding the highest and lowest value:";
echo "Lowest Value: " . $min ."</br />";
echo "Highest Value: " . $max ."</br />";
echo "New Sum: " . ($sum - $max - $min) . "</br />";
echo "New Average : " . (($sum - $max - $min) / ($count-2));