以下是表结构数据
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 5where条件是:
按小时,日、周,月,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,呵呵,不知道我说清楚了没?谢谢各位,在线等...
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 5where条件是:
按小时,日、周,月,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,呵呵,不知道我说清楚了没?谢谢各位,在线等...
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')
查询12月每天的数量 SELECT st_date, sum(t.mms_send_num) st_num
FROM st_group_mms_detail_week t1
right join
(select to_char(to_date('2011-12', 'YYYY-MM') + rownum - 1, 'YYYY-MM-DD') as st_datefrom dual
connect by rownum <= to_number(to_char(last_day(to_date('2011-12', 'YYYY-MM')), 'dd'))) t2
on t1.st_date=t2.st_date
where 1=1
group by t2.st_date
order by t2.st_date;
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
两个13号,只是月不一样。我晕~~
2011-9-12至2011-12-30中间,有109天,15周,4个月,你希望把这些时间分成多少个等次?
小时的意思我猜是不是这样子的?
24小时分成四个等次,每6小时一个等次,统计每个等次的SUM值?