Mettiamo che io abbia una tabella col campo ID non univoco e voti e debba elencare tutte le voci, ma quelle con id uguale una sola volta

tradotto in esempio

ID VOTO
1 6
2 7
3 7
1 3
1 1

vorrei creare una query che generi l'elenco di tutte le id (cui poi associerò un nome) e la media dei voti e il numero dei voti, quindi

ID MEDIA N_VOTI
1 3,33 3
2 7 1
3 7 1

Ordinate per ID o per MEDIA o per N_VOTI a seconda della scelta dell'utente che vede la pagina

Non ho proprio idea di come si faccia, se serva un doppio ciclo while o se si memorizza su array o se esiste una istruzione apposita.

Potenzialmente potrebbero esseri migliaia di voti, quindi una soluzione che regga anche in questo caso

Grazie