Esta consulta:
SELECT MONTHNAME(post_time) AS month, YEAR(post_time) AS year
FROM blog_posts
GROUP BY
year, month
ORDER BY
post_time DESC
LIMIT 0, 10
grupos por meses y años y pedidos por tiempo de publicación aleatoria dentro de cada mes y año.
Dado que el orden de estas publicaciones aleatorias corresponde al de meses y años, sus categorías aparecerán en el orden correcto (reciente a temprano).
Actualización:
Para mostrar 10
categorías antes de June 2010
:
SELECT MONTHNAME(post_time) AS month, YEAR(post_time) AS year
FROM blog_posts
WHERE post_time < '2010-06-01'
GROUP BY
year, month
ORDER BY
post_time DESC
LIMIT 0, 10