SQL: Agrupe pelo valor mínimo em um campo enquanto seleciona linhas distintas

Aqui está o que estou tentando fazer. Vamos dizer que eu tenho essa tabela 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, quero selecionar a linha que contém o mínimo record_date. Então eu peguei:

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

As únicas soluções que vi para esse problema assumem que todas as entradas record_date são distintas, mas não é esse o caso em meus dados. Usar uma subconsulta e uma junção interna com duas condições me forneceria linhas duplicadas para alguns IDs, o que não quero:

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

questionAnswers(7)

yourAnswerToTheQuestion