这得具体内容具体分析,平台系统的环比函数好像是针对每一行数据的,不是一段时间范围数据的。
我做的话,我就直接在模型中写语句了,我看你图片中的数据是一行,那就好写:
with tmp as (select
sum(
case
when gsv_date between ${begin_time} and ${end_time} then gsv else 0
end
) gsv_current,
sum(
case
when gsv_date between ${begin_time} - interval datediff(${end_time} ,${begin_time} ) day and ${begin_time} -interval 1 day then gsv else 0
end
) gsv_pre
from
table_gsv
)
select ( gsv_current-gsv_pre)/gsv_pre as GSV_ZZL
from tmp
;
如果数据量大的话,你需要对数据 加where 条件 提高查询效率: from table_gsv where gsv_date between ${begin_time} - interval datediff(${end_time} ,${begin_time} ) day and end_time
另外,好像低版本的mysql不支持with语句,需要改成 select from (select from )的子查询