O chat retornou
GROUP BY p.categoria, c.pais
Essa cláusula indica que queremos agrupar os resultados da consulta pelo valor da coluna p.categoria e pela coluna c.pais. Isso significa que os resultados serão agrupados por combinações únicas de categoria e país.
poderiamos colocar tbm, uma lista de estado para melhorar o script e afins, pedindo para o chat.
SELECT p.categoria, c.pais, c.estado, COUNT() AS total_produtos FROM produtos p JOIN categorias c ON p.id_categoria = c.id WHERE p.preco > 100 GROUP BY p.categoria, c.pais, c.estado HAVING COUNT() > 5 ORDER BY total_produtos DESC;