做爰全过程免费的视频网站爱,网站关键词几个,制作app网站,ifront做原型控件的网站三、现在我们假设应用计时分为app应用和web应用#xff0c;需要考虑如下几个方面#xff1a; #xff08;1#xff09;多时间段#xff08;2#xff09;表中有冗杂数据 #xff08;3#xff09;用户是在web端和app端都登陆#xff0c;这种类型的重复时间段只能取其一 …三、现在我们假设应用计时分为app应用和web应用需要考虑如下几个方面 1多时间段2表中有冗杂数据 3用户是在web端和app端都登陆这种类型的重复时间段只能取其一 存在数据 存在表应用启动时间统计表Applic_Sessions 字段applic platform start_time end_time status rowid X web 11:30 18:33 1 1 X app 11:10 17:50 1 2 X app 17:55 19:55 1 3 X app 20:31 22:31 1 4 X web 02:01 02:40 1 5 利用sql语句的方式获取到开始时间和结束时间timestampdiff( )相减得到。 1取出X用户两平台中启动的最小时间 2取出X用户两平台中结束的最大时间 按照以上步骤这样会带来一个问题如rowid 为1和5的记录相减所得结果明显大于实际结果。 尝试方案1将不同平台的数据区分开单独计数 (1)select t.* from Applic_Sessions t where t.platform “web”; 视图Web_View applic platform start_time end_time status rowid X web 11:30 18:33 1 1 X web 02:01 02:40 1 2 select sum(timestampdiff(second,start_time,end_time)) from Web_View; (2)select t.* from Applic_Sessions t where t.platform “app”; 视图App_View applic platform start_time end_time status rowid X app 11:10 17:50 1 1 X app 17:55 19:55 1 2 X app 20:31 22:31 1 3 select sum(timestampdiff(second,start_time,end_time)) from Web_View; 这样求取出单个平台的使用时长这种适用于app使用时长可以换取双倍积分 等需求。但是至于中间的重复时间段更加干不掉了这种方法pass。 方案2 视图Applic_Sessions applic platform start_time end_time status rowid Xweb 11:30 18:33 1 1 Xapp 11:10 17:50 1 2 Xapp 17:55 19:55 1 3 X app 20:31 22:31 1 4 X web 02:01 02:40 1 5 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 11:30............................................18:33(web) 11:10....................17:50(app) 17:55.................19:55(app) 02:01....02:40 20:31.......22:31 整理一下数据发现其中的难点就是web的使用时长段与app的使用时间段夹杂在一起其他正常数据横向合并就成那第一步就是把这些夹杂数据单独拎出来然后取出最小启动值和最大结束值相减就好拉: 写下这个sql越看越别扭能行么---显然不行 select t.* from Applic_Sessions t where t.start_time between (select min(t.start_time) from Applic_Sessions t) and (select max(t.end_time) from Applic_Sessions t) and t.end_time between t.start_time and t.end_time; 至此卡住了。。。 绞尽了脑汁搞不定啊有哪位大神可以帮帮忙啊谢谢了 转载于:https://www.cnblogs.com/bling123/p/8493254.html