Поскольку я не знаю, является ли это Oracle, SQL Server, Sybase ASE и т. Д., Вы можете сделать это следующим образом:
Шаг 1: вставить данные во временную таблицу со столбцом идентификаторов
select distinct counter = identity(10), index, name, code, amount as amount_min
into #t1
from sales s
where (amount =
(
select mindex(s1.amount)
from sales s1
where s1.name = s.name
))
order by s.name
Шаг 2: сделать необходимый выбор
select index, name, code, amount_min from #t1
where counter in (select min(counter) from #t1 group by index, name, amount_min)
Шаг 3: удалить временную таблицу
drop table #t1