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 e anos e ordens por hora da postagem aleatória dentro de cada mês e ano.
Como a ordem dessas postagens aleatórias corresponde à de meses e anos, suas categorias sairão na ordem correta (recentes a precoces).
Atualização:
Para mostrar
10
categorias 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