sql >> Database teknologi >  >> RDS >> Oracle

Hvordan sammenligner man værdier for sidste og næstsidste indtastning i tabellen?

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

Opdatering:

Sådan vælger du resultater virksomhedsmæssigt:

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. Forstå forskellen mellem EXCEPT og NOT IN-operatører

  2. Hvordan konverterer jeg et bredde/længde-par til en PostGIS-geografitype?

  3. Hvad fortæller PostgreSQL-forklaringen mig præcist?

  4. Sådan opretter du array i PostgreSQL