Фильтрация таблицы SQL по изменяющемуся аргументу - PullRequest
1 голос
/ 05 апреля 2020

Я пытался отфильтровать эту базу данных в другом, чтобы получить таблицу только с данными желтого цвета (см. Прилагаемую таблицу):

Table attached

Правила, которые я хочу добавить, чтобы получить эти шесть строк: при каждом изменении столбца тикера я хочу получить максимальный срок погашения на эту дату.

Я пробовал этот код, однако он не работает ...:

SELECT
    DATE,
    Ticker,
    Maturity,
    Value
FROM
    Tables
WHERE
    MAX(Maturity)
GROUP BY
    Ticker

Я не уверен, что прикрепленное изображение видно, поскольку при открытии вопроса оно не отображается. Если оно не появится, пожалуйста, сообщите мне.

1 Ответ

0 голосов
/ 05 апреля 2020

SQL таблицы представляют неупорядоченные наборы. Ваш вопрос предполагает упорядочение данных. Позвольте мне предположить, что у вас есть другой столбец с этой информацией.

Тогда вы можете просто использовать lead():

select t.*
from (select t.*,
             lead(ticker) over (order by <ordering column>) as next_ticker
      from t
     ) t
where next_ticker is null or next_ticker <> ticker;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...