SQL: agrupar por valor mínimo en un campo al seleccionar filas distintas

Esto es lo que estoy tratando de hacer. Digamos que tengo esta tabla t:

id | record_date | other_cols
18 | 2011-04-03  | x
18 | 2012-05-19  | y
18 | 2012-08-09  | z
19 | 2009-06-01  | a
19 | 2011-04-03  | b
19 | 2011-10-25  | c
19 | 2012-08-09  | d

Para cada ID, quiero seleccionar la fila que contiene el record_date mínimo. Así que obtendría:

id | record_date | other_cols
18 | 2011-04-03  | x
19 | 2009-06-01  | a

Las únicas soluciones que he visto para este problema suponen que todas las entradas de record_date son distintas, pero este no es el caso en mis datos. El uso de una subconsulta y una unión interna con dos condiciones me daría filas duplicadas para algunos ID, que no quiero:

id | record_date | other_cols
18 | 2011-04-03  | x
19 | 2011-04-03  | b
19 | 2009-06-01  | a

Respuestas a la pregunta(7)

Su respuesta a la pregunta