有如图的数据表,我希望对每一个用户的20分钟的action行为组成一个序列,最终就得到一个用户所有间隔20分钟的行为序列。,现在对这个间隔20分钟的操作不是很清楚,现在只能得到如图的结果,用户所有的action都组合到一起了,没有按时间分开,时间问题怎么处理?谢谢

解决方案 »

  1.   

    建议去其他数据库版的MYSQL版问问。
      

  2.   

    首先我想知道你的20分钟的定义    
          是从今日的0点0分0秒开始每隔20分钟
          还是从用户开始操作为止 每隔20分钟?如果是前者  你可以预先知道今天的24*3 一共72个时间段的区间     加上where条件查询  最后合并即可
    如果是后者  你首先需要查询出他最开始操作和最后操作的时间  然后计算出查询区间 然后查询建议分多条语句  利用临时表完成 当然借助脚本或者存储过程最简单不过希望能帮到你
      

  3.   

    像第一个图中,有一个用户 ,在不同的时间有一个action操作,然后我想以20分钟为一组,把的行为变成序列。就成了
    用户名,action1,action2,action3......这些action是20分钟内的action。这样一个用户如果有五组的话,那就得到他的五条action序列。这样表述的清楚么?
      

  4.   

    既然你已经实现了部分要求只不过不能每20分钟分个组,试试这个,
    SELECT MOD(UNIX_TIMESTAMP(NOW())+28800,86400) div 3600,
    然后你是要20分钟,那么把3600改成1200就好
    添加个伪列,MOD(UNIX_TIMESTAMP(hi_time)+28800,86400) div 1200,
    用hl_name和这个伪列分组。