E' corretto il ragionamento che hai fatto compreso il discorso dell'ordinamento non piu' possibile.

il problema non e' dare la colonna finta, ma fargli prendere l'ultimo id inserito validato nel where . vengono rese solo le righe contate, cioe' una.

per fargli prendere un raggruppamento fasullo basta fare:
codice:
select *, count(*), 1 as num
from tabella
where username != 'pippo'
group by num
ma ti prendera' sempre e solo il primo record che fisicamente trova nel db. L'indice non viene usato in una query come questa, dovresti riscrivere la tabella mettendo nella prima posizione fisica l'ultimo id inserito. tanto vale farne due di query....