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

 更新时间:2013年01月15日 15:09:56   作者:  
有这样一个需求:需要查询出某个客户某一年那些天是有连续办理过业务,本文给予sql实现语句并测试,感兴趣的朋友可以了解下
需求说明
需要查询出某个客户某一年那些天是有连续办理过业务

实现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)

相关文章

  • Oracle压缩表空间的基本步骤

    Oracle压缩表空间的基本步骤

    这篇文章主要介绍了Oracle怎么压缩表空间,压缩表空间可能需要一些时间,具体取决于表空间的大小和数据库的负载,因此,在执行此操作之前,请确保已备份数据库以防万一,需要的朋友可以参考下
    2023-06-06
  • 在Oracle数据库表中加载多个数据文件的方法详解

    在Oracle数据库表中加载多个数据文件的方法详解

    这篇文章主要给大家介绍了在Oracle数据库表中加载多个数据文件的方法,本文中,我将展示 SQL 加载器 + Unix 脚本实用程序的强大功能,其中 SQL 加载器可以使用自动 shell 脚本加载多个数据文件,需要的朋友可以参考下
    2024-01-01
  • oracle分区索引的失效和重建代码示例

    oracle分区索引的失效和重建代码示例

    这篇文章主要介绍了oracle分区的失效和重建代码示例,小编觉得挺不错的,这里分享给大家,供需要的朋友参考。
    2017-10-10
  • Oracle参数设置教程之set和reset的实用案例

    Oracle参数设置教程之set和reset的实用案例

    最近在学习oracle,学习中遇到了一些觉着有必要记录下的内容,所以下面这篇文章主要给大家介绍了关于Oracle参数设置教程之set和reset实用案例的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起看看吧。
    2017-10-10
  • oracle使用instr或like方法判断是否包含字符串

    oracle使用instr或like方法判断是否包含字符串

    使用contains谓词有个条件,那就是列要建立索引,本节主要介绍了oracle使用instr或like方法判断是否包含字符串,需要的朋友可以参考下
    2014-08-08
  • oracle中如何查询所有用户表的表名、主键名称、索引及外键等

    oracle中如何查询所有用户表的表名、主键名称、索引及外键等

    在与Oracle进行数据库操作时,往往会需要查询数据库表列表,以便对其进行操作,这篇文章主要给大家介绍了关于oracle中如何查询所有用户表的表名、主键名称、索引及外键等的相关资料,需要的朋友可以参考下
    2023-12-12
  • Oracle DML触发器和DDL触发器实例详解

    Oracle DML触发器和DDL触发器实例详解

    Oracle触发器是使用者对Oracle数据库的对象做特定的操作时,触发的一段PL/SQL程序代码器,下面这篇文章主要给大家介绍了关于Oracle DML触发器和DDL触发器的相关资料,需要的朋友可以参考下
    2023-03-03
  • PLSQL连接本地oracle或远程oracle数据库实现随意切换功能

    PLSQL连接本地oracle或远程oracle数据库实现随意切换功能

    这篇文章主要介绍了PLSQL连接本地oracle或远程oracle数据库实现随意切换功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Oracle查询执行计划

    Oracle查询执行计划

    执行计划(Execution Plan)也叫查询计划(Query Plan),它是数据库执行SQL语句的具体步骤和过程。本文主要介绍了Oracle查询执行计划方法,感兴趣的同学可以参考阅读
    2023-04-04
  • Oracle开发之分析函数(Top/Bottom N、First/Last、NTile)

    Oracle开发之分析函数(Top/Bottom N、First/Last、NTile)

    本文主要是对Oracle分析函数查找前几名、后几名、最多、最少以及按层次查询的介绍,需要的朋友可以参考下。
    2016-05-05

最新评论