Мне нужен SINGLE-запрос, который выполняет эту последовательность в оракуле.Подсчет количества записей по часам между двумя датами в оракуле
select count(*) from table1
where request_time < timestamp'2012-05-19 12:00:00' and (end_time > timestamp'2012-05-19 12:00:00' or end_time=null);
select count(*) from table1
where request_time < timestamp'2012-05-19 13:00:00' and (end_time > timestamp'2012-05-19 13:00:00' or end_time=null);
select count(*) from table1
where request_time < timestamp'2012-05-19 14:00:00' and (end_time > timestamp'2012-05-19 14:00:00' or end_time=null);
select count(*) table1
where request_time < timestamp'2012-05-19 15:00:00' and (end_time > timestamp'2012-05-19 15:00:00' or end_time=null);
select count(*) from table1
where request_time < timestamp'2012-05-19 16:00:00' and (end_time > timestamp'2012-05-19 16:00:00' or end_time=null);
Как вы видите, время увеличивается один за другим. здесь выход
COUNT(*)
1085
COUNT(*)
1233
COUNT(*)
1407
COUNT(*)
1322
COUNT(*)
1237
Я написал запрос, но он не дает мне правильного ответа!
select col1, count(*) from
(select TO_CHAR(request_time, 'YYYY-MM-DD HH24') as col1 from table1
where request_time <= timestamp'2012-05-19 12:00:00' and (end_time >= timestamp'2012-05-19 12:00:00' or end_time=null))
group by col1 order by col1;
Этот запрос дает мне результирующий набор, что сумма его счета (*) равна первому запросу, написанному выше! вот результат:
COL1 COUNT(*)
------------- ----------------------
2012-05-19 07 22
2012-05-19 08 141
2012-05-19 09 322
2012-05-19 10 318
2012-05-19 11 282
Спасибо, но это дает мне тот же результат, который я написал группой.Вопрос в том, что мне нужна сумма за час 22:00:00, которая в вашем примере будет 748 + 24 + 12 + 737 + 182 + 16 + 293 + 610 = 2622, а для часа 16:00:00 это должно быть 748 + 24 = 772 и так далее ... – Heidarzadeh
Я думаю, что я тебя не понимаю. – ipip
@Heidarzadeh: Если вы говорите об общей сумме 'COUNT (*)', попробуйте решение ipip с 'count (*)' заменено на 'sum (count (*)) over (order by trunc (created, 'HH')) '. –