Я борюсь с запросом SQL, и хотя я просмотрел много похожих ответов, ни один из них не вполне соответствовал моей ситуации. У меня есть набор данных, как показано ниже:
Date1 Amount 1 Index Date2 Type Supplier
31/03/2018 410000.00 17 16/04/2018 06:27 102 A
31/03/2018 410000.00 17 16/04/2018 06:31 102 B
31/03/2018 400000.00 2 16/04/2018 06:37 102 A
31/03/2018 400000.00 2 16/04/2018 06:38 102 B
30/06/2018 0 20 04/07/2018 08:23 202 A
30/06/2018 0 20 04/07/2018 08:23 202 B
30/06/2018 412000.00 20 06/07/2018 12:46 102 A
30/06/2018 412000.00 20 06/07/2018 12:47 102 B
30/06/2018 442000.00 100 16/07/2018 06:27 102 A
30/06/2018 442000.00 100 16/07/2018 06:31 102 B
Для каждой даты1, где есть несколько строк с одним и тем же типом, я хочу только те строки, индекс которых соответствует индексу максимальной даты2, поэтому я хочу получить следующие выходные данные:
Date1 Amount 1 Index Date2 Type Supplier
31/03/2018 400000.00 2 16/04/2018 06:37 102 A
31/03/2018 400000.00 2 16/04/2018 06:38 102 B
30/06/2018 0 20 04/07/2018 08:23 202 A
30/06/2018 0 20 04/07/2018 08:23 202 B
30/06/2018 442000.00 100 16/07/2018 06:27 102 A
30/06/2018 442000.00 100 16/07/2018 06:31 102 B
Я чувствую, что это возможно с некоторой формой MAX () OVER (PARTITION BY), но я не могу понять, как это сделать.