select a.* from table_name a join ( select min(distance) as min_dist, service_id as min_id from table_name group by service_id ) b on (a.distance = min_dist and a.service_id = min_id);