SQL: Grupuj według minimalnej wartości w jednym polu, wybierając różne wiersze
Oto, co próbuję zrobić. Powiedzmy, że mam tę tabelę 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
Dla każdego identyfikatora chcę wybrać wiersz zawierający minimalną datę rekordu. Więc dostanę:
id | record_date | other_cols
18 | 2011-04-03 | x
19 | 2009-06-01 | a
Jedyne rozwiązania, które widziałem w tym problemie, zakładają, że wszystkie wpisy record_date są różne, ale tak nie jest w moich danych. Użycie podzapytania i połączenia wewnętrznego z dwoma warunkami dałoby mi zduplikowane wiersze dla niektórych identyfikatorów, których nie chcę:
id | record_date | other_cols
18 | 2011-04-03 | x
19 | 2011-04-03 | b
19 | 2009-06-01 | a