Pular para o conteúdo

Fóruns SQL e PL/SQL [Dúvida Sub Select] [Dúvida Sub Select]

#85046
adanelon
Participante

    Uma forma de fazer seria utilizando uma função analítica, sendo que o comando ficaria mais ou menos assim:

    SELECT a.funcionario,
    a.salario
    FROM (SELECT funcionario,
    salario,
    Row_Number() over
    (
    PARTITION BY funcionario
    ORDER BY dt_salario DESC
    ) AS ID
    FROM tabela
    ) a
    WHERE a.id = 2

    A função utilizada no FROM ordena a data do salário em ordem decrescente por funcionário. Então, o identificador 2 seria a penúltima data. Se fosse a antepenúltima, seria o identificador 3, e assim por diante.

    []s