如何以分钟而不是小时为基础获取数据?

How to get data on minute base instead of hourly base?

我使用以下查询来获取按小时计算的数据:

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');

我现在想做的是相同的,但以分钟为基础。我怎样才能完成这项工作?

对我来说,你本可以完全避免使用 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'