Ich habe die folgende Abfrage, die das tut, was ich will, aber ich vermute, dass es möglich ist, dies zu tun, ohne eine Unterabfrage:Geben Priorität eines GROUP BY in MySQL ORDER BY über ohne Unterabfrage
SELECT *
FROM (SELECT *
FROM 'versions'
ORDER BY 'ID' DESC) AS X
GROUP BY 'program'
Was ich brauche, ist es, nach Programm zu gruppieren, aber die Ergebnisse für die Objekte in Versionen mit dem höchsten Wert von "ID" zurückzugeben.
In meiner Erfahrungen aus der Vergangenheit, eine Abfrage wie diese in MySQL sollte Arbeit, aber aus irgendeinem Grund ist es nicht:
SELECT *
FROM 'versions'
GROUP BY 'program'
ORDER BY MAX('ID') DESC
Was ich wollen, ist zu tun haben, MySQL, indem man zuerst den Auftrag tun und dann die GROUP BY, aber es besteht darauf, die GROUP BY zuerst gefolgt von der ORDER BY. h., es werden die Ergebnisse der Gruppierung sortiert, anstatt die Ergebnisse der Ordnung zu gruppieren.
Natürlich ist es nicht möglich
SELECT * FROM 'versions' ORDER BY 'ID' DESC GROUP BY 'program'
Dank zu schreiben.
ORDER BY hat keinen Wert vor einer Gruppe ausgeführt werden, wenn BY –
vielleicht kann dieser Link helfen Ihnen - http://stackoverflow.com/questions/3695502/first-order-by-then-group-by – Alpesh
Check sogar diese Verbindung. Genau das wollen Sie - http://dev.mysql.com/doc/refman/5.0/en/example-maximum-column-group-row.html – Alpesh