oracle数据库,底下表中,查询出每个相同地址中符合时间差15分钟以内的数据。sql

oracle数据库,下面表中,查询出每个相同地址中符合时间差15分钟以内的数据。sql
本帖最后由 u010682329 于 2014-11-24 10:03:34 编辑
oracle数据库,下面表中,查询出每个相同地址中符合时间差15分钟以内的数据。sql怎么写   
ID                      ADDS                                                  DATES    

 324234234      百色市靖西县新靖镇电力小区2号      2014-11-11 1:29    
 324234235      百色市靖西县新靖镇电力小区2号      2014-11-11 1:30    
 324234236      百色市平果县兴平路                          2014-11-11 0:41    
 324234237      百色市平果县兴平路                           2014-11-11 1:08    
 324234238      百色市田东县田东商都德洲汉堡店      2014-11-11 2:02    
 324234239      百色市田东县田东商都德洲汉堡店      2014-11-11 1:57    
 324234240      百色市田东县田东商都德洲汉堡店      2014-11-11 1:38    

显示效果

    ID                      ADDS                                                  DATES    
 324234234      百色市靖西县新靖镇电力小区2号      2014-11-11 1:29    满足
 324234235      百色市靖西县新靖镇电力小区2号      2014-11-11 1:30    满足
 324234236      百色市平果县兴平路                          2014-11-11 0:41    不满足
 324234237      百色市平果县兴平路                           2014-11-11 1:08    不满足
 324234240      百色市田东县田东商都德洲汉堡店      2014-11-11 1:38  不满足
 324234239      百色市田东县田东商都德洲汉堡店      2014-11-11 1:57   满足  
 324234238      百色市田东县田东商都德洲汉堡店      2014-11-11 2:02   满足 
------解决思路----------------------
SQL> with t as
  2  (select 324234234 id,'百色市靖西县新靖镇电力小区2号'  ADDS,to_date('2014-11-11 1:29','yyyy-mm-dd hh24:mi') dates from dual
  3  union all
  4  select 324234235 id,'百色市靖西县新靖镇电力小区2号'  ADDS,to_date('2014-11-11 1:30','yyyy-mm-dd hh24:mi') dates from dual
  5  union all
  6  select 324234236 id,'百色市平果县兴平路'  ADDS,to_date('2014-11-11 0:41','yyyy-mm-dd hh24:mi') dates from dual
  7  union all
  8  select 324234237 id,'百色市平果县兴平路'  ADDS,to_date('2014-11-11 1:08','yyyy-mm-dd hh24:mi') dates from dual
  9  union all
 10  select 324234238 id,'百色市田东县田东商都德洲汉堡店'  ADDS,to_date('2014-11-11 2:02','yyyy-mm-dd hh24:mi') dates from dual
 11  union all
 12  select 324234239 id,'百色市田东县田东商都德洲汉堡店'  ADDS,to_date('2014-11-11 1:57','yyyy-mm-dd hh24:mi') dates from dual
 13  union all
 14  select 324234240 id,'百色市田东县田东商都德洲汉堡店'  ADDS,to_date('2014-11-11 1:38','yyyy-mm-dd hh24:mi') dates from dual
 15  )
 16  SELECT ID,ADDS,to_char(DATES,'yyyy-mm-dd hh24:mi') dates,
 17  CASE WHEN DATES-PRE<=15/60/24 OR NEXT-DATES<=15/60/24 THEN '满足' ELSE '不满足' END STATUS
 18  FROM(
 19  select ID,ADDS,DATES,
 20  lag(dates,1,dates-1) over(partition by adds order by dates) pre,
 21  lead(dates,1,dates+1) over(partition by adds order by dates) next
 22  from T)
 23  ORDER BY adds,DATES;

        ID ADDS                           DATES            STATUS
---------- ------------------------------ ---------------- ------
 324234234 百色市靖西县新靖镇电力小区2号  2014-11-11 01:29 满足
 324234235 百色市靖西县新靖镇电力小区2号  2014-11-11 01:30 满足
 324234236 百色市平果县兴平路             2014-11-11 00:41 不满足
 324234237 百色市平果县兴平路             2014-11-11 01:08 不满足
 324234240 百色市田东县田东商都德洲汉堡店 2014-11-11 01:38 不满足
 324234239 百色市田东县田东商都德洲汉堡店 2014-11-11 01:57 满足
 324234238 百色市田东县田东商都德洲汉堡店 2014-11-11 02:02 满足

已选择7行。

SQL>