Я пытаюсь получить максимальное значение счетчика, но ошибка

Это мои данные

username   tool_id
___________________
user1         1
user1         2
user2         1
user3         3

Мне нужно получить максимальное количество tool_id

Я использую этот код, чтобы получить tool_count

SELECT tool_id, COUNT(tool_id) AS tool_count 
  FROM table 
 GROUP BY tool_id
tool_id   tool_count
_____________________
  1          2
  2          1
  3          1

И я использую

SELECT tool_id,max(tool_count) 
 FROM
 (
  SELECT tool_id, COUNT(tool_id) AS tool_count 
    FROM table 
   GROUP BY tool_id
 )

Чтобы получить max tool_count, но это ошибка

Результат мне нужен:

tool_id  tool_count
__________________
   1         2
0
Learning CODING 14 Ноя 2020 в 09:30

2 ответа

Лучший ответ

Вы можете попробовать использовать order by desc with limit 1

SELECT tool_id, COUNT(tool_id) as tool_count 
from table 
group by tool_id
order by tool_count desc limit 1
0
Fahmi 14 Ноя 2020 в 06:38

Если tool_id - primary_key, удалите GROUP BY из вашего запроса, и вам не нужно использовать эту команду.

Но если вы получаете все свои строки таблицы одновременно с помощью count, вам нужно сгруппировать по столбцу, который имеет похожие данные во всех столбцах, вы можете изменить свою таблицу и добавить столбец со значением по умолчанию, которое никогда не изменится.

Лучше получить счет в другом запросе.

-1
Hamid Abbasi 14 Ноя 2020 в 07:33