Lag 函数不接受使用 postgres SQL 的浮点值

Pau*_*ani 3 sql postgresql window function

我试图从 PostgreSQL 中表的前一行中选择一个双精度(浮动)值,但 lag() 函数仅在所选列是整数时才起作用:

这段代码给出了错误:

“错误:函数滞后(双精度,整数,整数)不存在”

select id_client, date, value, lag(value, 1, 0) over (order by date)
Run Code Online (Sandbox Code Playgroud)

这段代码工作正常,但我失去了小数点:

select id_client, date, value, lag(cast(value as int), 1, 0) over (order by date)
Run Code Online (Sandbox Code Playgroud)

Jos*_*Mac 6

滞后函数的默认值必须与主值具有相同的类型:

lag(value, 1, 0::double precision)然后就可以了