【发布时间】:2015-07-03 18:28:53
【问题描述】:
我有一个包含数百个时间戳的表。
我提取小时,然后我可以简单地平均,但是,这就是我遇到问题的地方。
select purchase,
CAST(AVG(EXTRACT(HOUR FROM opened_at)) AS INT) as average_open
from db.purchasetable
group by 1
当我平均第 22 小时和第 2 小时时,我得到 12(显然),但是,我想要的是 0,因为午夜是两个小时之间的平均时间点。
如何在 Teradata 中执行此操作?
【问题讨论】:
-
我不确定这是否可能,因为 2 到 22 之间的平均值仍然应该是 12,而不是 0,可能你需要重新考虑你的要求
-
0 不会是平均点,而是中间点。您是否正在寻找一天中大多数人会活跃的时间?这可能更容易。
-
如果您希望这一天具有相关性,那么您需要将这一天包括在您的平均计算中。这当然意味着您在月底仍有问题 - 因此您应该包括月份。然后年终...包括年份。所以这真的取决于你在这里想要实现的目标:)
-
感谢您的意见。我正在寻找的是在 sql 中给我 0 的解决方法
-
要添加到该评论,我想要一天中的平均时间而不是平均日期
标签: sql datetime timestamp teradata