Oracle查询连续5个月记录的实现方法
Oracle查询方式多种多样,下面为您介绍的Oracle查询方法实现的是连续时间段内记录的实现方法,希望可以让您对Oracle查询有更多的认识。
表结构如下
姓名 日期 ...
a 200101
a 200102
a 200103
a 200104
a 200105
a 200401
a 200403
a 200404
a 200405
c 200901
c 200902
b 200301
b 200304
b 200801
b 200802
b 200803
b 200804
b 200805
现在需要找出连续5个月都有记录的人员和开始日期及结束日期,例如a从200101-200105和b从200801-200805
- SELECT 姓名, Start_HM, End_HM FROM(
- SELECT b.姓名, MIN (b.日期) Start_HM, MAX (b.日期) End_HM
- FROM (SELECT a.*, ADD_MONTHS(a.日期, ROWNUM * (-1)) cc
- FROM (SELECT *
- FROM t
- ORDER BY 姓名, 日期
- ) a
- ) b
- GROUP BY b.姓名, b.cc)
- WHERE MONTHS_BETWEEN(End_HM,Start_HM) >= 4;
【编辑推荐】
Oracle查询日期所属月份的天数
oracle查询中表的连接顺序
Oracle查询用户表空间的实现
16种oracle查询日期语句
Oracle查询语句应用经验总结
版权声明:
作者:后浪云
链接:https://www.idc.net/help/308171/
文章版权归作者所有,未经允许请勿转载。
THE END