如何过滤出连续三月及以上的数据

image.png

SQL yzmFXNAH1526936 发布于 2023-10-10 11:31
1min目标场景问卷 立即参与
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
坚定的小帆薯Lv7高级互助
发布于2023-10-10 13:23

可以用左联进行判断,通过判断连接后的记录中是否缺失来判断数据的连续性。

需要先对数据去重哈,否则有笛卡尔

比如:

 SELECT t1.id, t2.id as 2id

 FROM data t1  

 LEFT JOIN data t2 ON t1.id + 1 = t2.id; 

最佳回答
0
Harry768Lv6见习互助
发布于2023-10-10 13:48
SELECT * FROM table  t1 WHERE EXISTS (     SELECT 1     FROM table t2     WHERE t1.name = t2.name     AND t2.transaction_date BETWEEN t1.transaction_date AND DATE_ADD(t1.transaction_date, INTERVAL 2 MONTH)     GROUP BY t2.name     HAVING COUNT(DISTINCT DATE_FORMAT(t2.transaction_date, '%Y-%m')) >= 3 );

过滤某个姓名连续三月及以上的交易数据

  • 3关注人数
  • 346浏览人数
  • 最后回答于:2023-10-10 13:48
    请选择关闭问题的原因
    确定 取消
    返回顶部