Как я могу сузить этот запрос с помощью функции max? - PullRequest
1 голос
/ 29 апреля 2019

Incorrect Query Result

Я использую PHP MyAdmin. Я хочу, чтобы результатом этого запроса были Willard Wildcats и 7, но я не могу понять, как это сделать, используя функцию max, а не функции order by и limit. Мне нужно использовать максимальную функцию

Select Team_Name, Count(*)
From Number_3
Group By Team_Name

Результат этого запроса должен быть

Willard Wildcats and 7

Ответы [ 2 ]

1 голос
/ 29 апреля 2019

Вам нужно написать где условие и выбрать столбец, используя функцию max

Select Team_Name, Count(*) From Number_3 where Team_Name=(select max(Count(*)) from Number_3)
1 голос
/ 29 апреля 2019

Использовать LIMIT предложение:

SELECT Team_Name, Count(*) AS CNT 
FROM Number_3
GROUP BY Team_Name
ORDER BY CNT DESC
LIMIT 1;

Если вы ограничены предложением LIMIT, используйте подзапрос:

SELECT Team_Name, Count(*) AS CNT 
FROM Number_3
GROUP BY Team_Name
HAVING Count(*) = (SELECT MAX(CNT)
                   FROM (SELECT Team_Name, Count(*) AS CNT 
                         FROM Number_3
                         GROUP BY Team_Name
                        ) t
                  );

Если вы работаете с последней версией MySQL, с функцией ранжирования это будет проще:

SELECT t.*
FROM (SELECT Team_Name, Count(*) AS CNT,
             DENSE_RANK() OVER (ORDER BY Count(*) DESC) AS Seq 
      FROM Number_3
      GROUP BY Team_Name
     ) t
WHERE Seq = 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...