【发布时间】:2019-09-20 15:03:48
【问题描述】:
我有一个包含数百万条目的表。我想知道一年(2018 年)给定分钟内出现的最大条目数。
我最初的策略是找出哪个月的条目数量最多。像这样:
--月
SELECT date_part('month', create_time), count(*)
FROM mydb.mytable
WHERE date_part('year', create_time) = 2018
GROUP BY date_part('month', create_time)
这将给我一年中的某个月的最大值。我会以日、小时、月进行,最终以例如:
--分钟
SELECT date_part('minute', create_time), count(*)
FROM mydb.mytable
WHERE date_part('year', create_time) = 2018
AND date_part('month', create_time) = 6
AND date_part('day', create_time) = 19
AND date_part('hour', create_time) = 11
GROUP BY date_part('minute', create_time)
ORDER BY count DESC
通过这种策略,我发现每分钟的最大条目数是例如250.
然而事实证明这是一个错误的策略。
巧合的是,我发现其中一个月的条目数明显减少的月份实际上每分钟的条目率更高,例如700.
所以问题是,我怎样才能找到一年内每分钟的最大条目数,而不必“探索”我的方式?
【问题讨论】:
标签: sql postgresql groupwise-maximum