qq_45245412
风尘缘起
采纳率0%
2021-03-09 09:44

搜索某个字段连续5条以上相同的数据

目前找到了这种方法,但如果需要更多次数的连续相同,就更麻烦了,有没有更好的方法,求大神指教

 

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • technologist_04 CSDN技术专家团—麒麟奇 1月前

    1、 参考这篇文章,添加新列new_id,这个列的数据是下一条记录的id https://developer.aliyun.com/article/485399

    2、再添加新列dif = new_id - id ,只有dif  =1 才是连续的

    3、 使用groupy by 分组 ,条件 count(1)>n ,获得连续相同数据的id

    点赞 2 评论 复制链接分享
  • SoftwareTeacher SoftwareTeacher 1月前
    点赞 2 评论 复制链接分享
  • u014043168 hcqDezhp 1月前
    select a.user_id,count(b.user_id)
    FROM
    (select DISTINCT user_id,DATE_FORMAT(create_date,"%Y-%m-%d") as my_date
    from order
    order by user_id,my_date) as a
    left join (select DISTINCT user_id,DATE_FORMAT(create_date,"%Y-%m-%d") as my_date
    from order
    order by user_id,my_date) as b on b.user_id=a.user_id and b.my_date>=b.my_date and b.my_date<=DATE_FORMAT(DATE_ADD(a.my_date,INTERVAL 5 DAY),'%Y-%m-%d')
    group by a.user_id,a.my_date
    having count(b.user_id)=5

    类似这种形式,建立一个虚拟表,以日期为例,查询所有id和日期对应的数据,再join一次,条件是大于等于原日期,小于等于原日期加N日,如果查出来的条数等于N,证明有连续N天符合条件。

    点赞 1 评论 复制链接分享