Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak porównać wartości dla ostatniego i przedostatniego wpisu w tabeli?

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

Aktualizacja:

Aby wybrać wyniki z punktu widzenia firmy:

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. Jak skonfigurować Ruby on Rails z Oracle?

  2. Jak sprawdzić nieaktualne statystyki

  3. Jak tworzyć raporty PDF za pomocą PL/SQL

  4. Oracle Instant Client dla urządzenia Debiana opartego na architekturze ARM

  5. Oracle + dbunit otrzymuje wyjątek AmbiguousTableNameException