如何在选择查询(MySQL)中仅消除连续重复项而不消除所有重复项?

如何在选择查询(MySQL)中仅消除连续重复项而不消除所有重复项?,第1张

如何在选择查询(MySQL)中仅消除连续重复项而不消除所有重复项?

您想要获得先前的值。如果日期确实没有间隔或重复,请执行以下 *** 作:

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
。因此,不应在一个表达式中分配变量,而后在另一个表达式中使用变量-应该在单个表达式中分配变量。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5431857.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-11
下一篇2022-12-11

发表评论

登录后才能评论

评论列表(0条)

    保存