Как получить данные по минутной базе вместо почасовой базы?

#sql #oracle-sqldeveloper #truncate

Вопрос:

Я использую следующий запрос, чтобы мои данные подсчитывались ежечасно:

 select to_char(trunc(time, 'HH'), 'DD/MM/YY HH24') as "date",
count(event), count(distinct id) from source
where time >= date '2021-01-01'
group by trunc(time,'HH')
order by trunc(time,'HH');
 

То, что я сейчас хочу сделать, — это то же самое, но на минутной основе. Как я могу это сделать?

Ответ №1:

По-моему, вы могли бы trunc полностью избежать, так как вы TO_CHAR все равно используете:

 select to_char(time, 'dd/mm/yy hh24') ...
 

Если вы хотите включить минуты, никаких проблем:

 select to_char(time, 'dd/mm/yy hh24:mi') as "date",
       count(event), count(distinct id)
from source
where ...
group by to_char(time, 'dd/mm/yy hh24:mi')
 

Обратите внимание, что сортировка по строкам, вероятно, не даст желаемых результатов. Возможно, если бы вы изменили формат даты, например, на 'yyyymmdd hh24:mi'

Комментарии:

1. Большое вам спасибо 🙂