sim realmente montar no MySQL achei complicado, pois tem que relacionar o limite por cada categoria individual e ainda agrupar, tentei o group by, o having, eu tinha pesquisado sobre o subsql o problema e que o id categoria esta na mesma tabela, mas da forma que você fez deu super certo ate já apliquei hehe