MySQL ordenar por antes de agrupar por

Hay muchas preguntas similares que se pueden encontrar aquí, pero no creo que ninguna responda adecuadamente a la pregunta.

Continuaré desde la actual más popular.pregunta y usa su ejemplo si eso está bien.

La tarea en este caso es obtener la última publicación de cada autor en la base de datos.

La consulta de ejemplo produce resultados inutilizables, ya que no siempre es la última publicación que se devuelve.

SELECT wp_posts.* FROM wp_posts
    WHERE wp_posts.post_status='publish'
    AND wp_posts.post_type='post'
    GROUP BY wp_posts.post_author           
    ORDER BY wp_posts.post_date DESC

La respuesta actual aceptada es

SELECT
    wp_posts.*
FROM wp_posts
WHERE
    wp_posts.post_status='publish'
    AND wp_posts.post_type='post'
GROUP BY wp_posts.post_author
HAVING wp_posts.post_date = MAX(wp_posts.post_date) <- ONLY THE LAST POST FOR EACH AUTHOR
ORDER BY wp_posts.post_date DESC

Desafortunadamente, esta respuesta es sencilla y equivocada, y en muchos casos produce resultados menos estables que la consulta original.

Mi mejor solución es utilizar una subconsulta del formulario.

SELECT wp_posts.* FROM 
(
    SELECT * 
    FROM wp_posts
    ORDER BY wp_posts.post_date DESC
) AS wp_posts
WHERE wp_posts.post_status='publish'
AND wp_posts.post_type='post'
GROUP BY wp_posts.post_author 

Mi pregunta es simple entonces:¿Hay alguna forma de ordenar filas antes de agrupar sin recurrir a una subconsulta?

Editar: Esta pregunta fue una continuación de otra pregunta y los detalles de mi situación son ligeramente diferentes. Puede (y debe) asumir que también hay un wp_posts.id que es un identificador único para esa publicación en particular.

Respuestas a la pregunta(9)

Su respuesta a la pregunta