这属于数据分析范畴。
应该先在数据集里计算出分析结果,再在图表中显示
数据要左合并2次分别合并一天前,2天前。然后三天的数据做判断。才能分析出来结果
像db2有lag() 开窗函数,可以跨行取数 ,就不用关联合并了
没有这类函数,就需要合并
-----------------------------------
假设有这样一张表,表名就叫table,字段和数据如下
日期 指标
2020-12-01 10
2020-12-02 11
2020-12-03 9
2020-12-04 8
2020-12-05 7
要想比较连续三天是否都有下降。需要对自身表做两次关联
如果上面的日期是日期格式:yyyy-mm-dd 格式,有些数据库是可以用lag()函数,直接跨天取数。如果没有这个函数可以用左合并的形式
select a.日期,
a.指标 当日指标,
b.指标 一天前指标,
c.指标 两天前指标
case when a.指标>b.指标 and b.指标>c.指标 then a.指标 --条件满足给个值:a.指标,是为了后面跟图上的指标值匹配
else 0 end 提醒状态 --不满足条件给其他值
from table a
left join table b
on a.日期=date_format(date_sub(b.日期, interval 1 day),'%Y-%m-%d') --mysql语法
-- on a.日期=format(date b.日期 -1days,'YYYY-MM-DD') -- db2语法
left join table c
on a.日期=date_format(date_sub(c.日期, interval 2 day),'%Y-%m-%d') --mysql语法
-- on a.日期=format(date c.日期 -2days,'YYYY-MM-DD') -- db2语法
这样在图表中用条件显示,根据数据集中的状态值做提醒显示
![1610156248231128.png image.png](/upload/wenda/20210109/1610156248231128.png)