我有一个系统可以保存网络中服务器的统计信息。稍后,用户可以使用所有数据并计划其增长。因此,将数据汇总成图表非常重要,即跨越一个小时、一天、一周、一年等。
我正在尝试做这样的事情:
select created_time / 60, count(*)
from pm_server_stat
group by (created_time / 60);
--with this index
CREATE INDEX pm_server_stat_created_time_60
ON pm_server_stat
USING btree
((created_time / 60));
这是我得到的解释
"GroupAggregate (cost=189822.36..213951.06 rows=1206435 width=8)"
" Output: ((created_time / 60)), count(*)"
" -> Sort (cost=189822.36..192838.45 rows=1206435 width=8)"
" Output: created_time, ((created_time / 60))"
" Sort Key: ((pm_server_stat.created_time / 60))"
" -> Seq Scan on public.pm_server_stat (cost=0.00..34967.44 rows=1206435 width=8)"
" Output: created_time, (created_time / 60)"
有谁知道为什么会这样?我怀疑类型可能不同?