Oracle: как выбрать метку времени для конкретной даты - PullRequest
0 голосов
/ 13 декабря 2018

Имя, Зарплата, Дата, Изм.

Иоанн 100 '10-Янв-2017 '

Иоанн 200 '20 -Ян-2017'

Иоанн 50 '20 -Ян-2018 '

Том 100 '10-Янв-2017'

Том 200 '20-Янв-2017 '

Алиса 100 '10-Янв-2017'

Алиса 200 '20-Янв-2017 '

Как получить людей с зарплатой> 100 на 1 апреля 2018 года?

Спасибо

1 Ответ

0 голосов
/ 13 декабря 2018

Один из способов - использовать row_number():

select t.*
from (select t.*,
             row_number() over (partition by name order by datechanged desc) as seqnum
      from t
      where datechanged <= date '2018-04-01'
     ) t
where seqnum = 1 and salary > 100;

. Выбирает все строки до даты отсечения.Затем он перечисляет их и выбирает тот, у которого самая высокая дата, и сравнивает зарплату.

Это предполагает, что первая зарплата находится в таблице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...