如何判断某个人某地停留是否超过30分钟呢?【sql建表语句和数据在文后】

自己编写遇到问题: 开始是取最大时间和最小时间的差值,大于指定的30min,但是可能存在

某人员先是00:00:45出现在A地,一会之后离开了,晚上23:23:59又出现在A地一会后又离开了....

①比如如下表中数据的李四出现在C地就是这种情况,这种就不符合条件;

②看图示,张三在A地时间连续且停留超过了30分钟,只有张三符合条件;

③王五出现的时间00:01:45; 14:01:45,23:01:45,时间间隔差距太大了,不符合;

连续1小时或者2小时可接受,比如00:01:45, 01:01:45,02:01:45;

with tmp as (  --分组汇总并获取时间间隔

select name,STATION,min(time) time1,min(time1) time2,min(time2) time3 from                    (SELECT name,station,time,

lead(time,1,null) over(partition by STATION order by time) time1,

lead(time,2,null) over(partition by STATION order by time) time2

FROM checktime_tb order by name,STATION)group by name,STATION),

tmp1 as( --获取每个时间间隔的时间差

select tmp.*,round((time3-time2)*24*60) ab,round((time2-time1)*24*60) bc,round((time3-time1)*24*60) ac from tmp)

select tmp1.*,CASE WHEN AB <=30 and BC<=30 THEN '符合' ELSE '不符合' END state from tmp1;

思路:采集一个人在某地的三个时间,AB端、BC端都在30分钟内就符合要求。

知识点:with语法

偏移函数 lag、lead


建表语句

对应表结构和数据_Oracle的

CREATE TABLE "TEST"."CHECKTIME_TB" ( "NAME" VARCHAR2(50 BYTE), "STATION" VARCHAR2(50 BYTE), "TIME" DATE)INSERT INTO "TEST"."CHECKTIME_TB" VALUES ('张三', 'A地', TO_DATE('2018-08-10 00:09:45', 'SYYYY-MM-DD HH24:MI:SS'));INSERT INTO "TEST"."CHECKTIME_TB" VALUES ('张三', 'B地', TO_DATE('2018-08-10 06:09:45', 'SYYYY-MM-DD HH24:MI:SS'));INSERT INTO "TEST"."CHECKTIME_TB" VALUES ('张三', 'A地', TO_DATE('2018-08-10 00:16:45', 'SYYYY-MM-DD HH24:MI:SS'));INSERT INTO "TEST"."CHECKTIME_TB" VALUES ('张三', 'B地', TO_DATE('2018-08-10 06:19:40', 'SYYYY-MM-DD HH24:MI:SS'));INSERT INTO "TEST"."CHECKTIME_TB" VALUES ('张三', 'A地', TO_DATE('2018-08-10 00:40:45', 'SYYYY-MM-DD HH24:MI:SS'));INSERT INTO "TEST"."CHECKTIME_TB" VALUES ('李四', 'C地', TO_DATE('2018-08-10 00:00:45', 'SYYYY-MM-DD HH24:MI:SS'));INSERT INTO "TEST"."CHECKTIME_TB" VALUES ('李四', 'C地', TO_DATE('2018-08-10 23:23:59', 'SYYYY-MM-DD HH24:MI:SS'));INSERT INTO "TEST"."CHECKTIME_TB" VALUES ('李四', 'C地', TO_DATE('2018-08-10 23:24:00', 'SYYYY-MM-DD HH24:MI:SS'));INSERT INTO "TEST"."CHECKTIME_TB" VALUES ('王五', 'B地', TO_DATE('2018-08-10 00:01:45', 'SYYYY-MM-DD HH24:MI:SS'));INSERT INTO "TEST"."CHECKTIME_TB" VALUES ('王五', 'B地', TO_DATE('2018-08-10 14:01:45', 'SYYYY-MM-DD HH24:MI:SS'));INSERT INTO "TEST"."CHECKTIME_TB" VALUES ('王五', 'B地', TO_DATE('2018-08-10 23:01:45', 'SYYYY-MM-DD HH24:MI:SS'));

sql判断时间差值_Oracle判断某人员在某地是否有超过指定时间的停留相关推荐

  1. SQL 判断字段值是否有中文、英文、数字、提取中文、英文、数字

    –SQL 判断字段值是否有中文 create function fun_getCN(@str nvarchar(4000)) returns nvarchar(4000) as begin decla ...

  2. oracle空值判断 =,Oracle,sql server的空值(null)判断

    Oracle,sql server的空值(null)判断 sql server 替换null:isnull(arg,value) 如:select isnull(price,0.0) from ord ...

  3. 聚合函数的计算机控件,ACCESS VBA编程必须掌握的聚合函数(判断 表 值).doc

    ACCESS VBA编程必须掌握的聚合函数(判断 表 值) VBA中的聚合函数及用法 --如何判断表中的值? *****常用域聚合函数***** 1.DCount(expr, domain, [cri ...

  4. 想要精通算法和SQL的成长之路 - 判断子序列问题

    想要精通算法和SQL的成长之路 - 判断子序列问题 前言 一. 判断子序列 1.1 动态规划做法 1.2 双指针 二. 不同的子序列 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 判断子序 ...

  5. java 返回值判断_在Java中判断方法重载的条件除了参数外,还可以通过返回值类型判断。_学小易找答案...

    [单选题]若int x;且有下面的程序片断,则输出结果是() . for (x=3; x<6; x++) { printf((x%2) ? "##%d" : "** ...

  6. python 根据判断产生新列_pandas DataFrame 根据多列的值做判断,生成新的列值实例...

    环境:Python3.6.4 + pandas 0.22 主要是DataFrame.apply函数的应用,如果设置axis参数为1则每次函数每次会取出DataFrame的一行来做处理,如果axis为1 ...

  7. html 判断整数,javascript如何判断值是否为整数?

    javascript如何判断一个值是否为整数?下面本篇文章就来给大家介绍一下使用javascript判断一个值是否为整数的方法,希望对大家有所帮助. 方法1:使用取余运算符判断 任何整数都会被1整除, ...

  8. php 值是否在数组里面,php怎么判断某值在不在数组中

    在php中可以通过in_array函数判断某值在不在数组中,in_array的作用就是用于搜索数组中是否存在指定的值,该函数的语法是"in_array(search,array,type)& ...

  9. 判断按键值_ALIENTEK 阿波罗 STM32F767 开发板资料连载第七章 按键输入实验

    1)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自<STM32F7 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第七章 按键输入实验 上 ...

最新文章

  1. linux显示父目录,linux – 仅列出文件的公共父目录
  2. PHP rss聚合,利用PHP和AJAX创建RSS聚合器
  3. python参数检验框架_基于python的人员识别检测框架研究
  4. Echo:新生好看的一言网站源码
  5. python中MySQLdb模块用法实例
  6. phpredis报错信息:protocol error, got ‘o‘ as reply type byte解决方案
  7. PyTorch: 各种图像格式相互转化
  8. ADO.NET Entity Framework 学习(1)
  9. 在 WPF 程序中使用矢量图
  10. SLD 样式 之GeoServer中设计2.5维建筑物
  11. 声音加速_听,这是加速的声音
  12. python文件操作
  13. 从无到有构建计算机网络
  14. 客户上云究竟为了什么?
  15. 腾讯的职级系统——看清自己的职场宿命
  16. 《java程序设计基础》 抽象类
  17. vue里删除购物车商品(购物车功能六)
  18. 云计算奇妙学习之旅第一期:初识云计算
  19. 【系统分析师之路】系统分析师备考计划
  20. 2018年Android版本分布(市场占有率、市场份额)统计

热门文章

  1. python人工智能github的一些跑程序技巧(持续更新~)
  2. matlab期中考试卷,matlab期末考试试卷及答案.doc
  3. java awt 边距_Java Swing - 使用Line Border在TextArea上设置边距
  4. 求一个3*3矩阵两条对角线上元素之和(每个元素只加一次) C语言
  5. Python3小程序:把字符串转换成连续的UTF8编码(16位)
  6. 机器人与目标匹配问题及解决 虚拟动力学 纳什平衡 Q-Learning
  7. ROS入门笔记(十二):动作编程 (C++)
  8. linux同步多台机器的时间
  9. php持久对象,php-在理论中具有两个外来身份的持久对象
  10. java subset_Java TreeSet subSet()方法