sql >> Databasteknik >  >> RDS >> PostgreSQL

sql glidande fönster - hitta maxvärde över intervall

SELECT  *,
        (
        SELECT  SUM(value)
        FROM    mytable mi
        WHERE   mi.tstamp BETWEEN m.tstamp - '5 minute'::INTERVAL AND m.tstamp
        ) AS maxvalue
FROM    mytable m
ORDER BY
        maxvalue DESC
LIMIT   1

I PostgreSQL 11 och högre:

SELECT  SUM(value) OVER (ORDER BY tstamp RANGE '5 minute' PRECEDING) AS maxvalue,
        *
FROM    mytable m
ORDER BY
        maxvalue DESC
LIMIT   1



  1. postgres:få topp n förekomster av ett värde inom varje grupp

  2. infoga i mysql-problemet

  3. Hur castar man ett nolldatum i en viloläge nativeQuery?

  4. sp_generate_inserts för SQL Server 2008