No exemplo do group by, foi necessário dar um distinct para nao repetir os resultados.
String jpql = "select avg(m.valor) from Movimentacao m where m.conta = :pConta" + " and m.tipo = :pTipo" + " group by m.data";
Porém, se estava agrupando pela data, o normal já não seria só aparecer dois resultados, já que temos duas datas apenas? Ou na hora de comparar para agrupar, o JPA verifica também os horários das datas, e por isso continuou com 4 resultados?