Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да сравня стойностите за последния и предпоследния запис в таблицата?

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

Актуализация:

За да изберете резултати по отношение на компанията:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Има ли начин да се създаде автоматично увеличаващ се първичен ключ на Guid в база данни на Oracle?

  2. SQL съхранена процедура за проверка на стойност да/не в таблица и изпълнение на sql

  3. sql оптимизатор за голяма Db таблица

  4. regexp_replace:вмъкнете интервал в низ, ако вече не присъства

  5. Функция ACOS() в Oracle