我试图在mysql中使用subdate方法,但我无法得到我想要的.
假设我有下表:
表:
id created_at value
1 2019-03-19 50
2 2016-03-20 100
3 2016-03-21 87我想要创建一个视图,它将显示3列,并添加一个自定义,这基本上是当前值与前一天值之间的差异。
在这个例子中,我的视图输出应该是:
id created_at value diff
1 2019-03-19 50 0
2 2016-03-20 100 50
3 2016-03-21 87 -13谢谢你的帮助
发布于 2019-11-08 14:32:53
在MySQL 8.0中,您可以使用lag()
select
t.*,
coalesce(value - lag(value) over(order by created at), 0) diff
from mytable t在早期版本中,您可以自加入表并使用带有关联子查询的not exists条件来获取前一条记录:
select
t.*,
coalesce(t.value - t1.value, 0) diff
from mytable t
left join mytable t1
on t1.created_at < t.created_at
and not exists(
select 1
from mytable t2
where t2.created_at < t.created_at and t2.created_at > t1.created_at
)https://stackoverflow.com/questions/58768414
复制相似问题