Originariamente inviato da musghs
Allora... il ragionamento sarebbe questo:

1. prendo tutti gli articoli in ordine di data inserimento + recente.
2. una volta che ho la lista degli articoli ordinati, li raggruppo x categorie.

In questo modo dovrei avere per prima la categoria con l'articolo + recente.

Esempio:
Lista articoli
- articolo 1 inserito il 10-10-2009 in CATEGORIA 1
- articolo 2 inserito il 07-10-2009 in CATEGORIA 2
- articolo 3 inserito il 08-10-2009 in CATEGORIA 3

RISULTALTO:
- CATEGORIA 1
articolo 1

- CATEGORIA 3
articolo 3

- CATEGORIA 2
articolo 2


Non so' se mi sono spiegato bene..
Questo è esattamente quello che fa la query che ti ho postato.
Quindi il tuo problema è che ti ritrovi prima la notizia di categoria 3 rispetto a quella della categoria 2.
Se vuoi che la notizia della categoria 2 risulti prima di quella della categoria 3, basta che tu le riordini per categoria:

SELECT * FROM (select * from forum order by data_ins desc) f where attiva='si' group by categoria order by categoria