Ecco qua
(Sostituisci tutte e 4 le volte "tabella" con il nome reale)
Codice:
SELECT
utente,
SUM(importo) AS totaleimporto
FROM
tabella
WHERE (
SELECT
COUNT(*)
FROM
tabella AS t
WHERE
t.utente = tabella.utente
AND t.importo >= tabella.importo
) <= 3
GROUP BY
utente
ORDER BY
id
In pratica questa query (che in realtà sono due query annidate) prende i valori maggiori grazie a t.importo >= tabella.import, dei quali sceglie solo i primi tre (<= 3).
Del risultato somma i valori (SUM(importo) AS totaleimporto) raggruppandoli in base all'utente (GROUP BY utente)