有意思的关于sqlserver时间的取值和计算问题
2017-08-21 00:00
106 查看
有一批数据要处理(见图片),量比较大,时间跨度有五年,而且每一个地点会重复出现,我需要查出每一个地点的起始时间(最小值)和结束时间(最大值)以及停留的时间(最大值-最小值),停留时间不足一天的按一天处理,请问使用sqlserver如何实现?
代码:
代码:
WITH /* 测试数据 table1(dt,city) AS ( SELECT '2017-01-01','BJ' UNION ALL SELECT '2017-01-02','BJ' UNION ALL SELECT '2017-01-03','BJ' UNION ALL SELECT '2017-01-04','BJ' UNION ALL SELECT '2017-01-05','BJ' UNION ALL SELECT '2017-01-06','BJ' UNION ALL SELECT '2017-01-07','HZ' UNION ALL SELECT '2017-01-08','HZ' UNION ALL SELECT '2017-01-09','HZ' UNION ALL SELECT '2017-01-10','HZ' UNION ALL SELECT '2017-01-11','HZ' UNION ALL SELECT '2017-01-12','HZ' UNION ALL SELECT '2017-02-01','BJ' UNION ALL SELECT '2017-02-02','BJ' UNION ALL SELECT '2017-02-03','BJ' UNION ALL SELECT '2017-02-04','BJ' ), */ a AS ( SELECT dt, city, ROW_NUMBER() OVER(ORDER BY dt) rn1, ROW_NUMBER() OVER(ORDER BY city,dt) rn2 FROM table1 ), b AS ( SELECT rn1-rn2 seg, city, MIN(rn1) rn1, MIN(dt) dt_1, MAX(dt) dt_2 FROM a GROUP BY rn1-rn2, city ) SELECT city, dt_1, dt_2, DATEDIFF(day,dt_1,dt_2)+1 days FROM b ORDER BY rn1
相关文章推荐
- 关于计算日期时间问题
- sqlserver 存储过程 临时表 时间计算 循环 问题
- 关于类似朋友圈的发布时间间隔计算问题(python)
- 关于python科学计算中的axis取值问题
- Oracle课程里关于计算时间差的问题
- 关于JS下拉列表选择时间计算时间周期的问题解决
- 关于边界值取值的问题
- 关于mysql字段时间类型timestamp默认值为当前时间问题
- 在论坛中出现的比较难的sql问题:35(时间间隔计算问题)
- 【转】关于时间复杂度的计算
- 关于SimpleDateFormat安全的时间格式化线程安全问题
- 关于单精度和双精度的取值范围问题
- 算法的度量-----时间复杂度问题的计算
- 关于linux系统和tomcat时间不一致的问题
- 关于Oracle中取时间问题
- 关于RTP中的时间戳问题
- 关于php中使用odbc或者pdo连接sqlserver时如果查询条件中存在中文会导致查询失败的问题
- 关于π值的计算问题
- 关于用list_head 来计算结构体地址的问题
- python中关于时间和日期函数的常用计算总结(time和datatime)