2016-12-18 4 views
0

Я пытаюсь сделать запрос с максимальным и сосчитать, как это: (взято из http://www.w3resource.com/sql/aggregate-functions/max-count.php)макс и количество запросов

SELECT MAX (mycount) 
FROM (SELECT agent_code,COUNT(agent_code) mycount 
FROM orders 
GROUP BY agent_code); 

этот запрос возвращает столбец с именем «MAX (MYCOUNT)» с максимальное значение: «7», простое изменение, которое я хочу, - это то, что я хотел бы получить код агента того, кто получил максимум, а не максимальные записи кода агента.

попытался сделать это в некотором роде, но пока не повезло, надеюсь, что вы можете помочь мне сделать это правильно.

ответ

0

Если вам не придется беспокоиться о галстука для двух агентов, имеющих максимальное количество заказов, то вы можете попробовать следующее:

SELECT agent_code, COUNT(*) AS mycount 
FROM orders 
GROUP BY agent_code 
ORDER BY COUNT(*) DESC 
LIMIT 1 

Если вы сделать придется беспокоиться о галстуке для максимального количества заказов, и вы хотите все связи, то вы можете использовать подзапрос:

SELECT agent_code, COUNT(*) AS mycount 
FROM orders 
GROUP BY agent_code 
HAVING COUNT(*) = (SELECT MAX(t.mycount) FROM 
        (SELECT COUNT(*) AS mycount FROM orders GROUP BY agent_code) t) 
0

вы можете использовать order by и limit:

SELECT agent_code, COUNT(agent_code) as mycount 
FROM orders 
GROUP BY agent_code 
ORDER BY mycount DESC 
LIMIT 1; 
Смежные вопросы