2016-12-18 1 views
0

Ich versuche, eine Abfrage mit max zu machen und zählen wie diese: (aus http://www.w3resource.com/sql/aggregate-functions/max-count.php)max und Abfrage der Anzahl

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

diese Abfrage gibt eine Spalte mit dem Namen ‚MAX (Mycount)‘ mit Der maximale Wert: '7', die einfache Änderung, die ich möchte, ist, dass ich den Agentencode von demjenigen bekommen möchte, der das Maximum hat, anstatt der maximalen Datensätze des Agentencodes.

versucht, dies in mancher Hinsicht zu tun, aber bisher kein Glück, hoffe, Sie können mir helfen, dies richtig zu machen.

Antwort

0

Wenn Sie nicht über ein Unentschieden für zwei Agenten, die die maximale Anzahl der Aufträge kümmern, dann können Sie Folgendes versuchen:

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

Wenn Sie über eine Krawatte Sorge haben tun für die maximale Anzahl von Aufträgen, und Sie alle Verbindungen wollen, dann können Sie eine Unterabfrage verwenden:

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

können Sie verwenden order by und limit:

SELECT agent_code, COUNT(agent_code) as mycount 
FROM orders 
GROUP BY agent_code 
ORDER BY mycount DESC 
LIMIT 1;