Q:

Mostrar data em linhas diferentes mas serviços agrupados GROUP BY

Boa tarde, estou fazendo um select aonde eu tenho que mostrar as quantidades de serviços e nome dos clientes agrupados, só que as datas diferentes tem que criar a linha com serviços agrupados e mostrar a data diferente em cada linha. Como está meu codigo:
select mensalidade_cliente.id_cliente,mensalidade_cliente.dt_mensal,mensalidade_cliente.status, 
  clientes.nome,
  COUNT(pedidos.id) AS QuantidadeServicos
  from mensalidade_cliente
  INNER JOIN clientes ON clientes.id = mensalidade_cliente.id_cliente
  LEFT JOIN pedidos ON pedidos.id_cliente = clientes.id group by pedidos.id_cliente;

Como eu tenho que mostrar:
  id_cliente |  dt_mensal  | status|  QuantidadeServicos
     1       | 2020-05-01  |   1   |        2
     1       | 2020-06-01  |   2   |        2

Se tiro o group by ele mostra uma unica linha com todos os serviços de todos os clientes. Preciso de ajuda quem souber me responder agradeço.

A:

Sua consulta esta inconsistente, você utilizou a tabela mensalidade_cliente como centro, após utiliza um INNER JOIN buscando mensalidade que tenham um cliente vinculado, até ai sem problema, o erro vem a seguir, você utiliza um LEFT JOINpara buscar obrigatoriamente os itens de pedidos mas que eles não precisam existir no demais conjunto e o seu group by utiliza ainda a tabela que não tem obrigatoriedade com os demais itens 
select 
  mensalidade_cliente.id_cliente,
  mensalidade_cliente.dt_mensal,
  mensalidade_cliente.status, 
  clientes.nome,
  COUNT(pedidos.id) AS QuantidadeServicos
from mensalidade_cliente
INNER JOIN clientes ON clientes.id = mensalidade_cliente.id_cliente
LEFT JOIN pedidos ON clientes.id = pedidos.id_cliente
group by mensalidade_cliente.id_cliente, mensalidade_cliente.dt_mensal;

A ordem dos fatores altera o produto com LEFT JOIN e RIGHT JOIN

