求助:关于sql如何统计时间的问题

三、现在我们假设应用计时分为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 15的记录,相减所得结果明显大于实际结果。

 

尝试方案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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/281137.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

onlyoffice中文字体下载

原文同步自作者博客:https://www.daxueyiwu.com/post/778 下划线开头的是页面显示中文的字体,不带下划线的是页面显示英文的字体 calibri.ttf -CalibriTimes New Roman.ttf _FANGSONG.otf -仿宋FANGSONG.otf_FS_GB2312.otf -仿宋_GB2312_HWZS.otf -华文…

onlyoffice 20并发限制处理

原文同步自作者博客:https://www.daxueyiwu.com/post/31 开源版本连续打开20个页面就会弹出该提示。 一.方案一 修改六个app.js文件 find ./ -name app.js 目录下所有app.js文件,对代码行进行修改,只是经过简单的测试,希望发现…

[Linux环境]-centos7下安装jdk1.8.0_141流程.

1.查看当前虚拟机java环境版本: java -version [rootcentos-linux-7 bin]# java -version java version "1.7.0_111" OpenJDK Runtime Environment (rhel-2.6.7.2.el7_2-x86_64 u111-b01) OpenJDK 64-Bit Server VM (build 24.111-b01, mixed mode) 2.查看当前安装版…

石桥图里的一个故事

唐朝诡事录有一个石桥图章节,里面记载了一个故事。十年前,南州乡贤谢员外的两个儿子,要求谢家的老仆人带自己去湖里游玩。哪知游玩到湖中间,突然下起了瓢泼大雨,员外家的一个儿子被惊吓掉落水里。老仆人的儿子赶忙去救…

onlyoffice更新中文字体总结

原文同步自作者博客:https://www.daxueyiwu.com/post/760 1. 通过字体修改软件FontCreator修改字体名称 (1)下载fontcreat.exe (2)将Windows/fonts 下的字体文件拷贝至 我的文档/fonts (3) 使用fontcreat打开字体…

ubuntu 键盘快捷键_如何使用键盘快捷键在Ubuntu中提高生产力

ubuntu 键盘快捷键diceareawesome1/Shutterstock.comdiceareawesome1 / Shutterstock.comWe’re always looking for new ways to speed up everyday tasks in Ubuntu. We’ll show you some keyboard shortcuts you might not have known about, and show you how to make you…

核心编程之十一章的11-9

def add(x,y): a x y def average(): list1 [] list1.append(a/2) print(list1) return a #为什么return a 放在这里呢,因为如果放在外面的话,根据return的属性,会结束嵌套数函数 return average() …

Ubuntu 桌面系统升级

本文介绍 Ubuntu 桌面系统升级的两种方式,通过 UI 或命令行的方式,演示为 20.04 升级为 22.04。并介绍了 windows 的 Linux 子系统 wsl 的升级注意事项。背景之前在学习 ROS2 时,安装 ros-humble-desktop 出现依赖错误:无法修正错…

onlyoffice修改左上角的logo

原文同步自作者博客:https://www.daxueyiwu.com/post/770 1. 商用版config里配置就能修改logo "editorConfig": {"customization": {"logo": {"image": "https://example.com/logo.png","imageEmbedded&q…

pidgin qq_Pidgin入门指南,通用消息客户端

pidgin qqIf you find chatting with multiple chat clients troublesome, then Pidgin is the tool for you. In today’s article, we’ll show you how to connect to popular chat networks, encrypt your conversations, and render mathematical formula in Pidgin. 如果…

NumPy学习_00 ndarray的创建

1.使用array()函数创建数组 参数可以为:单层或嵌套列表;嵌套元组或元组列表;元组或列表组成的列表 # 导入numpy库import numpy as np # 由单层列表创建a np.array([1,2,3])print(a) [1 2 3] # 由嵌套列表创建b np.array([[1.3,2.4], [0.3,4…

记一次 .NET 某自动化采集软件 崩溃分析

一:背景 1.讲故事前段时间有位朋友找到我,说他的程序在客户的机器上跑着跑着会出现偶发卡死,然后就崩掉了,但在本地怎么也没复现,dump也抓到了,让我帮忙看下到底怎么回事,其实崩溃类的dump也有简…

onlyoffice修改字号

原文同步自作者博客:https://www.daxueyiwu.com/post/758 :/var/www/onlyoffice/documentserver/web-apps/apps/documenteditor/main/app.js 里找到{value:22,displayValue:"22"} 把displayValue对应的值换成汉字字体 小二等 其实中文数字(字…

大数据

大数据技术的快速发展,对现如今人们的思维方式产生了巨大的改变。 首先,大数据的发展,改善了人们思维的局限性。在过去,数据流通速度慢,人们获取的数据资源有限,所以在看待事物方面,基于过去固有…

如何在 .NET MAUI 中加载 json 文件?

引言:按.NET core传统方式添加 AddJsonFile("appsettings.json") 在windows平台和ssr工作正常,但是在 ios 和 android 无法用这种方式,因为资源生成方式不一样. 使用内置资源方式不够灵活而且 ios 平台会提示不能复制 json 文件到目录,于是进行了几天的研究,终于能正…

onlyOfice取消上传文件大小的限制

原文同步自作者博客:https://www.daxueyiwu.com/post/757 使用onlyOfice的时候,在打开的文件中,对文件的大小有限制的,可以在服务中修改被限制的大小,在服务上有/etc/onlyoffice/documentserver/default.json的文件&a…

SSH整合注解版(Spring+Struts2+Hibernate)

整体架构&#xff1a; pom.xml 引入maven节点&#xff1a; <dependencies><!--单测--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.3</version><scope>test</scope><…

定时插座动一下就断_使用插座定时器在某些时候自动将您的Amazon Echo静音

定时插座动一下就断The Amazon Echo is an always-listening voice-controlled virtual assistant, but if there are times you’d rather not listen (or be listened to) by the Echo, here’s how to automatically mute it at certain times of the day. Amazon Echo是一个…

周末读书:《红楼梦》

【周末读书】| 作者/Edison大家好&#xff0c;我是Edison。古人曾说“开谈不说红楼梦&#xff0c;读尽诗书也枉然”&#xff0c;刚好最近我爸开始在阅读《红楼梦》&#xff0c;我想起当年看了两遍《红楼梦》原著和一遍87版《红楼梦》电视剧的场景。本文是我首发于2018年的一篇读…

onlyoffice启用HTTPS

原文同步自作者博客&#xff1a;https://www.daxueyiwu.com/post/765 HTTPS需要使用SSL证书&#xff0c;可以自己签发也可以用ca机构签发的&#xff0c;加密效果相同。 生成证书&#xff1a; 创建私钥 openssl genrsa -out onlyoffice.key 2048 创建CSR openssl req -new -k…