我正在尝试从PostgreSQL中的表的前一行中选择双精度(浮点)值,但只有当所选列是整数时,lag()函数才有效:
此代码给出错误:
“错误:函数滞后(双精度,整数,整数)不存在”
select id_client, date, value, lag(value, 1, 0) over (order by date)
此代码工作正常但我丢失了小数:
select id_client, date, value, lag(cast(value as int), 1, 0) over (order by date)
答案 0 :(得分:1)
滞后函数的默认值必须与主值的类型相同:
lag(value, 1, 0::double precision)
然后就可以了
答案 1 :(得分:0)
试试这样:
选择id_client,date,value,lag(value)over(按日期排序)