Możesz użyć podzapytania, aby zidentyfikować min(a)
wartość dla każdego id
a następnie dołącz go z powrotem do swojego stołu:
select *
from yourtable t1
inner join
(
select min(A) A, id
from yourtable
group by id
) t2
on t1.id = t2.id
and t1.A = t2.A
Zobacz SQL Fiddle z wersją demonstracyjną
Wynik:
| ID | A | B |
------------------
| 10 | 5 | blue |
| 20 | 2 | black |
| 30 | 7 | red |