используя max для выбора предыдущей записи в той же таблице - PullRequest
0 голосов
/ 06 ноября 2019

У меня возникла проблема, когда я хочу написать запрос, который выбирает предыдущую запись в таблице в sql oracle.

Я использовал max при необходимости сделать запрос:

select cur.wage ,max(prev.wage)
from t_wage prev 
inner join 
T_wage cur 
on 
cur.cntid=prev.cntid
where cur.wage=2*prev.wage
group by prev.wage
having max (prev.wage)< cur.wage 

Предположим, что мой столenter image description here

Я хочу, чтобы результат извлек последнюю запись и сравнил ее со второй последней и, если она удвоилась.

Я не знаю, как перенести предыдущую запись независимо от даты. Кто-нибудь может сказать мне, где я ошибся?

Результат должен быть:

3000   6000

1 Ответ

0 голосов
/ 06 ноября 2019

Я думаю, что вы хотите lag():

select t.
from (select t.*,
             lag(wage) over (partition by cntid order by dateid) as prev_wage
      from t
     ) t
where wage = 2 *  prev_wage;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...