Ciao, non riesco a creare questa query:

TABELLA pippo:

ID - CODICE - NUMERO
1 - aaaa - 1000
2 - bbbb - 500
3 - cccc - 400
4 - aaaa - 1200
5 - bbbb - 700
6 - cccc - 500
7 - aaaa - 1500
8 - bbbb - 900
9 - cccc - 700


Devo ottenere
7 - aaaa - 1500
8 - bbbb - 900
9 - cccc - 700

per ogni codice devo ottenere l'ultimo record (quello con l'id più alto)

Ho provato in 2 modi ma niente:
SELECT * FROM pippo GROUP BY codice HAVING MAX(id)
oppure
SELECT MAX(id) as max_id, codice, numero FROM pippo GROUP BY codice

Nessuna mi da il risultato voluto.
Voi che dite?