[RESOLVIDO]Erro com Group By - MYSQL

Estou com problema no group by do meu select. Já coloquei todos os campos nele e nada…
O meu select é :

SELECT pc.id, l.datalanc,sum(ht.valor) as valor,codigo_conta || ' ' || descricao as contacontabil
FROM lancamento l
INNER JOIN historicotransacao ht ON ht.id_lancamento = l.id
INNER JOIN planocontas pc ON pc.id = ht.id_contacontabil
ORDER BY pc.codigo_conta ASC
GROUP BY id;

O erro que aparece é :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘GROUP BY id’ at line 6

Podem me ajudar?

é group by pc.id

Assim também dá erro…
Já tentei…

entao o problema é no sum

faz assim

(select sum(valor) from historicotransacao where id_contacontabil   = pc.id  group by pc.id) as valor

no lugar de sum
e tira o INNER JOIN historicotransacao ht ON ht.id_lancamento = l.id e o group by

O order by não deve ser a última instrução?!

São dois erros, o primeiro já mencionado que é o ORDER BY tem que ser o último.
O segundo é que você tem que agrupar todos os atributos da projeção que não esta na função de agregação.

Errado

SELECT pc.id, l.datalanc,sum(ht.valor) as valor,codigo_conta || ' ' || descricao as contacontabil  
FROM lancamento l  
INNER JOIN historicotransacao ht ON ht.id_lancamento = l.id  
INNER JOIN planocontas pc ON pc.id = ht.id_contacontabil  
ORDER BY pc.codigo_conta ASC  
GROUP BY id; 

Correta com base na sua consulta

SELECT pc.id, l.datalanc,sum(ht.valor) as valor,codigo_conta || ' ' || descricao as contacontabil  
FROM lancamento l  
INNER JOIN historicotransacao ht ON ht.id_lancamento = l.id  
INNER JOIN planocontas pc ON pc.id = ht.id_contacontabil  
GROUP BY id, datalanc, codigo_conta, descricao 
ORDER BY pc.codigo_conta ASC  

Obrigada pelas sugestões de correção.