Ilja: Ergebnismenge mit UNION erneut sortieren

Beitrag lesen

yo,

[code lang=sql]
(
SELECT query, count( query ) AS wieviel, anzahl AS sort2
FROM tabelle
WHERE 1
GROUP BY query
ORDER BY wieviel DESC
LIMIT 0 , 50

jedes andere dbms würde dir dabei eine fehlermeldung ausgeben und das zurecht. du gibtst spalten aus, welche weder gruppiert wurden noch aggregierst, was dann auch der grund ist, warum die sortierung nicht funktioniert. das WHERE 1 macht auch keinen sinn, ich würde es entfernen. das dein Union ebenfalls keinen sinn hat, wurde dir ja bereits gesagt und count(query) setzt man so auch nicht ein, da wäre ein count(*) angebrachter. fehlt noch der hinweis, dass bei gleichheit die LIMIT funktion nur suboptimal funktioniert, weil er eben strickt nach 50 datensätzen abschneidet, aber das kann eventuell gewollt sein.

ich vermute mal, und es ist nur eine vermutung, du willst das hier:

SELECT query, COUNT(*) AS wieviel, SUM(anzahl) AS sort2
FROM tabelle
GROUP BY query
ORDER BY sort2 DESC, wieviel DESC
LIMIT 0 , 50

Ilja