, пожалуйста, помогите мне решить следующую проблему. Я потратил уже неделю, пытаясь объединить всю логику в одном SQL-запросе, но все еще не получил изящного результата. Я надеюсь, что эксперты SQL могли бы дать мне подсказку,
У меня есть таблица, которая имеет 4 поля: дата, expire_month, expire_year и значение. Первичный ключ определен в 3 первых полях. Таким образом, для конкретной даты имеется несколько значений с разными expire_month, expire_year. Мне нужно выбрать одно значение из них для каждой даты, представленной в таблице.
Например, когда я выполняю запрос:
SELECT date, expire_month, expire_year, value FROM futures
WHERE date = ‘1989-12-01' ORDER BY expire_year, expire_month;
Я получаю список значений на ту же дату, отсортированный по сроку действия (месяцы кодируются буквами):
1989-12-01 Z 1989 408.25
1989-12-01 H 1990 408.25
1989-12-01 K 1990 389
1989-12-01 N 1990 359.75
1989-12-01 U 1990 364.5
1989-12-01 Z 1990 375
Правильным единственным значением для этой даты является k-я запись сверху. Например, если k равно 2, тогда «правильная одиночная» запись будет:
1989-12-01 H 1990 408.25
Как я могу выбрать эти «правильные одиночные» значения для каждой даты в моей таблице?