Maik W. aus E.: Ergebnismenge mit UNION erneut sortieren

Beitrag lesen

Tach zusammen,

ich habe hier eine Tabelle in einer mySQl-DB der Version 5.0.32, die bei jeder Suchanfrage einen neuen Datesatz aufnimmt:

id | query | anzahl | timestamp
 1 | blabla|   12   | 2007-12-03

wobei 'anzahl' für die Anzahl der Treffer für den Suchbegriff 'query' steht.

Nun möchte ich gerne die 50 häufigsten Suchbegriffe haben und die sortiert nach den meisten Treffern. Das gelingt mit folgendem Statement:

  
(  
SELECT query, count( query ) AS wieviel, anzahl AS sort2  
FROM `tabelle`  
WHERE 1  
GROUP BY query  
ORDER BY wieviel DESC  
LIMIT 0 , 50  
)  
UNION (  
  
SELECT query, count( query ) AS wieviel, anzahl AS sort3  
FROM tabelle  
WHERE 1  
GROUP BY query  
ORDER BY anzahl  
LIMIT 0 , 50  
)  
ORDER BY sort2 DESC , wieviel DESC  
LIMIT 0 , 50  

Kann man das noch weiter optimieren oder gar viel einfacher bauen? Außerdem klappt das alphabetische Sortieren nicht, wenn ich den letzten 'Order'-Befehl ergänze:

ORDER BY sort2 DESC , wieviel DESC, query ASC

bleibt das ohne Wirkung. Wer kann helfen?

Danke und
http://www.gruss-aus-essen.de

Maik

--
Diese Dauerleihgabe wird Ihnen präsentiert von ROMY!
Maik. W. aus E. sagt Dankeschön ;-)