文档章节

有意思的关于sqlserver时间的取值和计算问题

 大云彩
发布于 2017/08/21 11:51
字数 298
阅读 4
收藏 0

有一批数据要处理(见图片),量比较大,时间跨度有五年,而且每一个地点会重复出现,我需要查出每一个地点的起始时间(最小值)和结束时间(最大值)以及停留的时间(最大值-最小值),停留时间不足一天的按一天处理,请问使用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

 

© 著作权归作者所有

共有 人打赏支持
粉丝 2
博文 87
码字总数 14895
作品 0
丰台
程序员
MySQL 8.0 中统计信息直方图的尝试

原文出处:MSSQL123 直方图是表上某个字段在按照一定百分比和规律采样后的数据分布的一种描述,最重要的作用之一就是根据查询条件,预估符合条件的数据量,为sql执行计划的生成提供重要的依据...

MSSQL123
09/15
0
0
大家期待已久的iMatrix平台mysql版本发布了

iMatrix平台有三个版本:oracle、sqlserver、mysql。 继iMatrix-oracle-6.0.0.RC1版本和iMatrix-sqlserver-6.0.0.RC1版本之后, 随后iMatrix-mysql-6.0.0.RC1版本相继发布了。关于版本的详细...

iMatrix
2014/07/15
0
0
FreeBSD下执行SQL Server2005存储过程解决方案

FreeBSD下执行SQL Server2005存储过程解决方案(Warning: mssql_execute(): ...) FreeBSD下使用SQL Server2005(2008)需要使用FreeTDS。 安装FreeTSD后,使用PHP语言进行测试。在使用mssql_e...

雷xiao雨
2014/03/01
0
0
sql server 性能调优 资源等待之网络I/O

一.概述   与网络I/O相关的等待的主要是ASYNCNETWORKIO,是指当sql server返回数据结果集给客户端的时候,会先将结果集填充到输出缓存里(ouput cache),同时网络层会开始将输出缓存里的数据...

花阴偷移
08/11
0
0
SQLServer 开启远程访问,也可逆向思维进行关闭

为了可以通过TCP/IP协议远程访问SQLServer数据库,需要做以下几点: 在SQLServer所运行的服务器上,我们必须找到SQLServer所侦听的端口然后添加到WIndows防火墙的【允许入站】中。 一:需要添...

easonjim
2015/08/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

搬瓦工镜像站bwh1.net被DNS污染,国内打不开搬瓦工官网

今天下午(2018年10月17日),继搬瓦工主域名bandwagonhost.com被污染后,这个国内的镜像地址bwh1.net也被墙了。那么目前应该怎么访问搬瓦工官网呢? 消息来源:搬瓦工优惠网->搬瓦工镜像站b...

flyzy2005
13分钟前
0
0
SpringBoot自动配置

本篇介绍下,如何通过springboot的自动配置,将公司项目内的依赖jar,不需要扫描路径,依赖jar的情况下,就能将jar内配置了@configuration注解的类,创建到IOC里面 介绍下开发环境 JDK版本1.8 spr...

贺小五
今天
3
0
命令行新建Maven多项目

参考地址 # DgroupId 可以理解为包名# DartifactId 可以理解为项目名mvn archetype:generate -DgroupId=cn.modfun -DartifactId=scaffold -DarchetypeArtifactId=maven-archetype-quickst......

阿白
今天
1
0
OSChina 周四乱弹 —— 上帝对我单身年限的惩罚越来越长了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @达尔文:分享张卫健的单曲《身体健康》 《身体健康》- 张卫健 手机党少年们想听歌,请使劲儿戳(这里) 昨天是重阳节咯, 可惜小小编辑总是晚...

小小编辑
今天
12
1
django rest framework 外键序列化方法与问题总结

django rest framework 外键序列化方法与问题总结 当借口中需要出现一对多关系的时候,我们可以用rest_framwork的序列化功能来处理,代码如下. # models.pyfrom django.db import modelscl...

_Change_
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部