文档章节

SQL 结果集标识

wffger
 wffger
发布于 2017/08/25 08:58
字数 262
阅读 9
收藏 0

标识连续日期区间

参考代码

with tt as(
select 10004 aac001,'小明'aac003,'200801'  aae002,  88 aic011,      date'2008-01-01'aae036 from dual union all 
select 10004 aac001,'小明'aac003,'200802'  aae002,  88 aic011,      date'2008-02-01'aae036 from dual union all 
select 10004 aac001,'小明'aac003,'200803'  aae002,  88 aic011,      date'2008-03-01'aae036 from dual union all 
select 10004 aac001,'小明'aac003,'200804'  aae002,  88 aic011,      date'2008-04-01'aae036 from dual union all 
select 10004 aac001,'小明'aac003,'200807'  aae002,  88 aic011,      date'2008-07-01'aae036 from dual union all 
select 10004 aac001,'小明'aac003,'200808'  aae002,  88 aic011,      date'2008-08-01'aae036 from dual union all 
select 10004 aac001,'小明'aac003,'200904'  aae002,  88 aic011,      date'2008-04-01'aae036 from dual union all 
select 10004 aac001,'小明'aac003,'200905'  aae002,  88 aic011,      date'2008-05-01'aae036 from dual union all 
select 10004 aac001,'小明'aac003,'200910'  aae002,  88 aic011,      date'2008-10-01'aae036 from dual )
 
select aac001,aac003,min(aae002)||'--'||max(aae002),count(1)
from(
  select tt.*,add_months(to_date(AAE002,'YYYYMM'),
    -1*row_number()over(partition by aac001,aac003 order by aae002))flag
  from tt)
group by aac001,aac003,flag
order by 1,2,3

思路:

按日期排序后标识行数,然后对日期和行数进行减法,连续的日期得到的值相同。

© 著作权归作者所有

共有 人打赏支持
wffger

wffger

粉丝 7
博文 112
码字总数 36359
作品 0
广州
程序员
初学Redis(3)——用Redis作为Mysql数据库的缓存

把Mysql结果集缓存到Redis的字符串或哈希结构中以后,我们面临一个新的问题,即如何为这些字符串或哈希命名,也就是如何确定它们的键。因为这些数据结构所对应的行都属于某个结果集,假如可以...

Airship
2016/01/25
30
0
自定义mybatis map返回类型

1.需求背景 设定订单表order,要根据订单类型统计订单数据,大致sql如下: Mybatis无法将以上sql以指定存入至map中。 而Mybatis默认返回的,是以每个字段name作为key,字段的值作为value,放...

程序猿小屌丝
2016/10/19
0
0
java开发中JDBC连接数据库代码和步骤

JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1、加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Cla...

被使用的文件
2015/11/28
100
0
java开发中jdbc连接数据 库的操作代码

JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1、加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Cla...

颜建海
2014/04/04
0
0
SAS学习笔记6

SAS过程步(proc step)是SAS系统的另一个核心步,对数据步(DATA STEP)生成的数据集进行分析和处理,挖掘数据信息。 SAS过程步用来对生成的数据集进行处理和分析,是SAS内部已经编译好的过...

开拓者-2017
2015/12/28
78
0

没有更多内容

加载失败,请刷新页面

加载更多

svn 常用操作命令及问题处理

1. 常用命令 1.1. 基本使用 检出 checkout ➜ svn co repo_url -m '检出代码'➜ svn co repo_url saved_dir_name -m '检出代码,并指定目录名' 加入版本控制 add # 添加指定文件➜ svn...

whoru
32分钟前
3
0
记一次jquery validate的扩展(第一次失去焦点时触发校验)

最近在用jquery.validate 做前端表单校验,但是发现每次第一次失去焦点时,如果文本框内容为空,且该字段是必填项, 则不会触发校验,直到提交表单后,再次失去焦点时,才会触发,想对此进行...

foreach
36分钟前
1
0
java生成UUID

UUID介绍: UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。按照开放软件基金会(OSF)制定的标准计算,用到了以...

编程SHA
40分钟前
1
0
Docker Compose 原理

Docker 的优势非常明显,尤其是对于开发者来说,它提供了一种全新的软件发布机制。也就是说使用 docker 镜像作为软件产品的载体,使用 docker 容器提供独立的软件运行上下文环境,使用 dock...

Java干货分享
53分钟前
0
0
解决过滤器中设置cookie无效的问题

解决过滤器中设置cookie无效的问题 代码现场 filterChain.doFilter(sessionSyncRequestWrapper, response);Cookie emailCook = WebServletUtil.getSelectedCookie(request.getCookies(), ......

黄威
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部