without regrets 2019-03-21 16:10 采纳率: 0%
浏览 763
已采纳

找出近三个月内14天以上未登录的用户ID

筛选出数据库中近三个月内14天以上未登录的用户ID。

mysql数据库表名为当天日期,一天生成一个表,表里有用户ID字段:uuid,登陆时间字段:ctime,如何写一句sql语句过滤筛选出三个月内一个用户ID几次登陆时间中某两次登陆时间大于14天的用户ID?

  • 写回答

4条回答 默认 最新

  • l_w610 2019-03-21 16:59
    关注

    配合日期函数控制范围

    近三个月内14天以上未登录的用户ID

    SELECT a.uuid from table_name  a
    WHERE a.ctime BETWEEN date_add(now(), interval -3 MONTH) AND now() 
    GROUP by uuid,CONVERT(CHAR(7),ctime) 
    HAVING datediff(now(),date_add(now(), interval -3 MONTH))-COUNT(DISTINCT a.ctime)>14
    

    第二个问题:几次登陆时间中某两次登陆时间大于14天的用户ID
    需要结合登出日期计算

    如果你要的是任意两次登录时间相隔大于十四天的话,用以下脚本

    ```SELECT DISTINCT a1.uuid
    FROM table_name a1,table_name a2
    WHERE a1.uuid=a2.uuid AND ABS(DATEDIFF(a1.ctime,a2.ctime))>14

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?