выберите максимальное значение из (выберите запрос)

#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. добавьте надлежащую выборку данных и ожидаемый результат