文档章节

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

粉丝 5
博文 108
码字总数 35704
作品 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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

移除或自定义 WordPress 仪表盘欢迎面板

第一次登录 WordPress 后台仪表盘页面,默认都会显示 WordPress 的欢迎面板: 如果我们要移除这个面板,在主题的 functions.php 中添加下面的代码即可: 12 //移除 WordPress 仪表盘欢迎面...

james_laughing
23分钟前
0
0
HashMap实现原理及源码分析

HashMap实现原理及源码分析   哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,...

DemonsI
26分钟前
0
0
eggjs学习笔记

快速初始化 生成项目(要求最低的node版本8.x) npm i egg-init -gegg-init egg-example --type=simplecd egg-examplenpm i 启动项目 npm run dev 配置 环境配置会覆盖默认配置 config...

别人说我名字很长
29分钟前
1
0
Winform Timer控件时间间隔

sender as System.Timers.Timer).Interval = 23 * 60 * 60 * 1000.0;//将时间间隔改为23小时,23小时后重新发生timer_Elapsed事件。 //60000:时间间隔1分钟,300000:时间间隔5分钟,600000:...

笑丶笑
30分钟前
0
0
在win10系统下怎样快速切换任务视图

切换窗口:Alt + Tab 任务视图:Win + Tab (松开键盘界面不会消失) 切换任务视图:Win + Ctrl +左/右 创建新的虚拟桌面:Win + Ctrl + D 关闭当前虚拟桌面:Win + Ctrl + F4...

SummerGao
34分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部