我有这样的表格
Period ID Amount
2015-04-01 01 500
2015-04-01 02 600
2015-05-01 01 500
2015-05-01 02 700
2015-06-01 01 700
2015-06-01 02 800
日期格式为:yyyy-MM-dd
我想在4月-6月不同时期、金额连续3个月增加的情况下选择ID。
例如,对于 ID : 02,其中数字从 600 到 700 再到 800 增加了 3 倍。对于 ID : 01 不被考虑,因为数字没有连续增加 3 次,因为对于ID : 01 从四月到五月没有增加,500 又500。
我需要的结果是选择ID,结果示例为:
ID
====
02
我真的需要帮助。几个星期以来我一直在想这个问题。谢谢您
最佳答案
这对于简单的查询来说并不容易,您将需要在 sql 中使用一些用户定义的变量来进行计算。这是一个方法
select
ID from (
select
ID,
Amount,
@rn:= if(
@prev_id = ID
and @prev_amt <> Amount
and ( timestampdiff(month,@prev_day,Period) = 1 ),
@rn+1,1) as rn,
@prev_day:= Period,
@prev_id:=ID,
@prev_amt:=Amount
from test,(select @prev_id=null,@prev_day=null,@prev_amt:=0,@rn:=1)x
order by ID,Period
)x
where x.rn = 3
关于mysql - 如何使用MySql搜索连续的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32006402/