Secondo me, la tua soluzione non restituisce il risultato che hai chiesto nella domanda, io avrei fatto così: SELECT listino.barcode, Min(listino.price) FROM listino GROUP BY listino.barcode;
Ciao Dopo molti test ti confermo che con il tuo suggerimento ottengo un risultato errato
ovvero mi estrae il prezzo più basso del barcode ma restituisce la posizione del barcode che ha il prezzo più alto!

ti confermo che la soluzione da me trovata mi da il corretto funzionamento.!

"SELECT listino.* FROM (SELECT * FROM listino ORDER BY price ASC) listino GROUP BY listino.bar_code"