#php #mysql #sql #max
#php #mysql #sql #максимальное
Вопрос:
У меня есть оператор SQL, который уже работает, но я хочу добавить еще один запрос на выборку, который возвращает (МАКСИМАЛЬНОЕ значение результатов) для следующего запроса на выборку,
(select count(*) from users where `score` =8 and `uni` = t.uni)*8 as 'rscore',
вот мой код
<?php
$connect = mysqli_connect('localhost', 'root', '', 'test')or die ( mysqli_error($connect) );
$output = '';
$search = mysqli_real_escape_string($connect, $_POST["query"]);
$query = "select t.uni,
(select count(*) from users where `score` =8 and `uni` = t.uni)*8 as 'rscore',
(select count(*) from users where `uni` = t.uni) as 'total'
from users t group by t.uni
";
$result = mysqli_query($connect, $query);
if(mysqli_num_rows($result) > 0)
{
$output .= '
';
$i=1;
while($row = mysqli_fetch_array($result))
{
echo '
<tr>
<td align="center">' . $i . '</td>
<td width="10%">'.$row["uni"].'</td>
<td align="center">'.$row["rscore"].'</td>
<td align="center">'.$row["total"].'</td>
</tr>
';
$i ;
}
}
?>
Комментарии:
1. Вы хотите количество записей или Максимум из выбранного столбца?
2.
MAX()
функция используется для полученияmax
значения столбца.3. Максимальное значение какого столбца вас интересует?
4. Я хочу вернуть (максимальное значение) выбранного запроса count, а не из столбца.
5. максимальное значение подзапроса (выберите count(*) от пользователей, где
score
= 8 иuni
= t.uni) * 8 как ‘rscore’,
Ответ №1:
Вы могли бы использовать conditional aggregation
, count
и max
select uni, sum( case when score =8 then 1 else 0 end )*8 as rscore,
count(*) total,
max(my_col) my_max
from users
group by uni
Ссылка:
http://www.mysqltutorial.org/mysql-max-function/
http://www.mysqltutorial.org/mysql-count/
Комментарии:
1. Что значит «но не работает», у вас ошибка? .. показать сообщение об ошибке… неправильный результат? обновите свой вопрос, добавьте надлежащий образец данных и ожидаемый результат
2. Я имею в виду код, который вы упомянули в качестве примера, я проверил ссылку, которую вы упомянули, но я не нашел ничего полезного о поиске максимального значения из подвыборки или подзапроса @scais Edge
3. добавьте надлежащую выборку данных и ожидаемый результат