服务器之家

服务器之家 > 正文

oracle—SQL技巧之(一)连续记录查询sql案例测试

时间:2019-11-19 15:38     来源/作者:oracle教程网

需求说明: 
需要查询出某个客户某一年那些天是有连续办理过业务 

实现SQL如下: 
创建表: 

复制代码代码如下:


create table test_num 
(tyear number, 
tdate date); 


测试数据: 
insert into test_num 
select 2014,trunc(sysdate)-1 from dual union all 
select 2014,trunc(sysdate)-002 from dual union all 
select 2014,trunc(sysdate)-003 from dual union all 
select 2014,trunc(sysdate)-004 from dual union all 
select 2014,trunc(sysdate)-005 from dual union all 
select 2014,trunc(sysdate)-007 from dual union all 
select 2014,trunc(sysdate)-008 from dual union all 
select 2014,trunc(sysdate)-009 from dual union all 
select 2013,trunc(sysdate)-120 from dual union all 
select 2013,trunc(sysdate)-121 from dual union all 
select 2013,trunc(sysdate)-122 from dual union all 
select 2013,trunc(sysdate)-124 from dual union all 
select 2013,trunc(sysdate)-125 from dual union all 
select 2013,trunc(sysdate)-127 from dual union all 
select 2015,trunc(sysdate)-099 from dual union all 
select 2015,trunc(sysdate)-100 from dual union all 
select 2015,trunc(sysdate)-101 from dual union all 
select 2015,trunc(sysdate)-102 from dual union all 
select 2015,trunc(sysdate)-104 from dual union all 
select 2015,trunc(sysdate)-105 from dual; 

写SQL

复制代码代码如下:


SELECT TYEAR, MIN(TDATE) AS STARTDATE, MAX(TDATE), COUNT(TYEAR) AS ENDNUM 
FROM (SELECT A.*, A.TDATE - ROWNUM AS GNUM 
FROM (SELECT * FROM TEST_NUM ORDER BY TYEAR, TDATE) A) 
GROUP BY TYEAR, GNUM 
ORDER BY TYEAR, MIN(TDATE) 

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
配置IIS网站web服务器的安全策略配置解决方案
配置IIS网站web服务器的安全策略配置解决方案 2019-05-23
Nginx服务器究竟是怎么执行PHP项目
Nginx服务器究竟是怎么执行PHP项目 2019-05-24
运维必须知道的关于云服务器的十个问题
运维必须知道的关于云服务器的十个问题 2019-05-24
返回顶部