+ -
当前位置:首页 → 问答吧 → 请教时间分组查询sql语句

请教时间分组查询sql语句

时间:2011-12-14

来源:互联网

以下是表结构数据
st_date mms_user_receive_success mms_send_num send_success_rate
2011-10-13 100 50 3
2011-12-21 200 20 2
2011-12-13 100 20 4
2011-12-14 300 10 5

where条件是:
按小时,日、周,月,6个月内 这几个时间段查询,一个时间段多条记录,sum一个字段的值,一共是四条SQL

比如按小时就是where条件0时至6时,6条记录的汇总数,一共6条记录,0条记录也要显示;
同理日、周、月都是这样;
6个月内这个条件是当前时间往前6个月内;



其中一个查询,但不对
SELECT st_date, sum(t.mms_send_num)
  FROM st_group_mms_detail_week t 
ST_DATE >= to_date('2011-9-12', 'yyyy-MM-dd')
and ST_DATE <= to_date('2011-12-30', 'yyyy-MM-dd')
 GROUP BY st_date

这样查询出来结果是这样,但我要的数据是每一天只能显示一条汇总记录,要包括where 条件里所有天数,如果为0也要显示一条数据

1 2011-10-13 50
2 2011-12-8 20 
3 2011-12-13 20
4 2011-12-14 10

不知道说清楚没,呵呵;一共是5条sql,呵呵,不知道我说清楚了没?谢谢各位,在线等...

作者: tongkuang   发布时间: 2011-12-14

就这个date的精确度,不会实现 时 的合计吧

作者: zujinsheng   发布时间: 2011-12-14

SQL code

select t.st_date 
  from (select to_date('2011-9-12', 'yyyy-MM-dd')+ rownum st_date
         from dual connect by rownum < 200) t
  left join
(SELECT st_date, sum(t.mms_send_num)
  FROM st_group_mms_detail_week t  
 where ST_DATE >= to_date('2011-9-12', 'yyyy-MM-dd')
   and ST_DATE <= to_date('2011-12-30', 'yyyy-MM-dd')
 GROUP BY st_date) t2
    on t.st_date=t2.st_date
 where t.st_date >= ST_DATE >= to_date('2011-9-12', 'yyyy-MM-dd')
   and t.st_date<=to_date('2011-12-30', 'yyyy-MM-dd')
  

作者: zujinsheng   发布时间: 2011-12-14

热门下载

更多