我在雅典娜有一张桌子,每个记录都有一个像1531699933974236880
这样的时间戳。
该表中有大量数据,我只想根据时间戳查询记录的最后5分钟。
为此,SQL语句将是什么?我曾尝试使用dateADD
和date_diff
,但不确定是否正确使用它,或者Presto(雅典娜的SQL查询引擎)是否支持它。
任何帮助都会很棒!
答案 0 :(得分:0)
您的时间戳看起来像Unix时间戳(以微秒为单位)。这表明:
select t.*
from t
where timestamp > (select max(timestamp) from t) - 5*60*1000000;
您的特定时间戳被解释为“ 2018年7月16日星期一12:12:13 AM”,这似乎是合理的。
答案 1 :(得分:0)
我强烈建议根据时间戳对数据进行分区,以便您可以在查询中使用分区过滤器来大大提高性能。
如果您有按小时划分的数据,则最多需要处理两个分区(n和n -1)。之后,您可以使用Gordon的示例(以及分区过滤器)来编写查询。