您想要获得先前的值。如果日期确实没有间隔或重复,请执行以下操作:
select t.*from t left join t tprev on t.col1 = date_add(tprev.col1, interval 1 day)where tprev.col2 is null or tprev.col2 <> t.col2;
编辑:
如果日期不满足这些条件,则可以使用变量:
select t.*from (select t.*, (@rn := if(@v = col2, @rn + 1, if(@v := col2, 1, 1) ) ) as rn from t cross join(select @v := 0, @rn := 0) params order by t.col1 ) twhere rn = 1;
请注意,MySQL不保证中的表达式求值顺序
SELECT。因此,不应在一个表达式中分配变量,而后在另一个表达式中使用变量-应该在单个表达式中分配变量。



