sql >> Databáze >  >> RDS >> Oracle

Jak porovnat hodnoty pro poslední a předposlední položku v tabulce?

SELECT  *, value - nextvalue AS diff
FROM    (
        SELECT  m.*, LEAD(value) OVER (ORDER BY date DESC) AS nextvalue
        FROM    mytable m
        ORDER BY
                date DESC
        )
WHERE   rownum = 1

Aktualizace:

Chcete-li vybrat výsledky podle společnosti:

SELECT  value - nextvalue AS diff
FROM    (
        SELECT  m.*,
                LEAD(value) OVER (PARTITION BY companyId ORDER BY date DESC) AS nextvalue,
                ROW_NUMBER() OVER (PARTITION BY companyId ORDER BY date DESC) AS rn
        FROM    mytable m
        )
WHERE   rn = 1



  1. Extrahujte hledaný řetězec v kontextu

  2. Jak získat poslední řádek tabulky Oracle

  3. Oracle:Použití CTE s aktualizační doložkou

  4. Připojte databázi MS SQL Server k databázi Oracle 11g