有这种一个需求:
a表中比如有两个字段:aa(字符类型),date(日期类型) 如图要求的是一天中连续的时间的最大的连续数:(就是后一个时间 和 前一个时间 相差5秒就是连续的)
比如:是2009-01-11 12:12:00 和 2009-01-11 12:12:05 是连续的 
2009-01-11 12:12:10 和前面的也是连续的,这里的连续数就是3个,请问这样的sql语句能写吗请教大家了

解决方案 »

  1.   

    图片没有上传上去:
    我手写一个:
    aa                data
    2                2009-01-11 08:24:00
    3                2009-01-11 08:24:05
    5                2009-01-11 08:24:10
    2                2009-01-11 09:11:55
    6                2009-01-11 12:12:05
    7                2009-01-11 12:12:10
    3                2009-01-11 12:12:15
    2                2009-01-11 12:12:20这里一天的连续最大数 就是 4 
    是12点那里有4个时间是连续的
      

  2.   

    select max(cn) from 
       (select count(*) cn
          from a
         group by date-5*rownum/24*60*60)如果a是无序的,那就先排序.
      

  3.   

    select max(count(*)) from a group by (dt-5/(24*3600)*rownum)
      

  4.   


    请问这里的
    date-5*rownum/24*60*60
    是个什么意思啊
      

  5.   

    chenqingyu兄的查出来是 1 好像不对,linzhangs兄的查出来的是 正确的select max(cn) from 
       (select count(*) cn
          from dapf200811 where rownum < 20
         group by (datatime-5*rownum/24*60*60))上面的sql语句查出来的是1 实际上是19 
      select max(count(*)) from dapf200811 where rownum <= 20 group by (datatime-5/(24*3600)*rownum)这条查出的结果是对的就是不明白datatime-5/(24*3600)*rownum 是个什么意思
    还请两位高手 指导下小弟 非常感谢
      

  6.   

    你运行
    select datatime-5/(24*3600)*rownum ,rownum from dapf200811 
    语句就知道什么意思了
      

  7.   

    谢谢楼上的解释,我查了下 还是不很明白
    *rownum 是做什么呢 rownum只是用来标识行的(个人理解)