我有一个数据表,里面有主要有这几个字段:
pid,cid,value,begintime。
每天整点(每小时,如1点,2点,3点.....),每一对pid与cid的组合会向表中传送数据,其中就有传送的值,保存在value中,时间保存在begintime中。现在我想知道每一对pid与cid的组合相同的时刻连续四天传的值是不是相等。我使用的sql如下:select pid, cid, value, to_char(p.begintime, 'hh24:mi:ss'), count(*)
  from my_table p
 where p.begintime >= trunc(sysdate - 4, 'dd')
 group by pid, cid, value, to_char(p.begintime, 'hh24:mi:ss')
having count(*) > 3这个sql可以查到过去四天到当天当时刻的(不到五天,这也正是我想要的),现在有这样一个问题:查询出来的数据中,包含有不是连续四天的,比如:8月3号5点,8月4号5点,8月6号5点,8月7号5点(中间少8月5号5点,不连续),我怎么改这个sql,剔除不连续的数据啊?谢谢!!!!!

解决方案 »

  1.   

    -- 写一个生成连续小时的查询语句,然后用这个查询去连接原SQL!select trunc(sysdate - 4, 'dd')+level/24
    from dual
    connect by level <=
      (sysdate-(trunc(sysdate - 4, 'dd'))*24;
      

  2.   

    -- to_char(p.begintime, 'hh24:mi:ss')-- 你现在只是按小时汇总?没有按日期?
      

  3.   


    不好意思,怎么把这个SQL连接到我的SQL上啊?我弄了半天没有连接上。