AWS Athena SQL 基于一列和静态值添加 date_diff 列

AWS Athena SQL add date_diff column based on one column and a static value

我正在尝试 运行 以下查询:

select date_diff('second',timeseries.timestampminute,max(timeseries.timestampminute)),
as elapsed_sec,
timeseries.grouttake
from timeseries

因为我希望经过的时间是 table 中最高日期时间值与 table 中每一行之间的时间,但我一直遇到错误:

"SYNTAX_ERROR: line 1:8: '"timeseries"."grouttake"' must be an aggregate expression or appear in GROUP BY clause"

有什么想法吗?

由于 max 是一个聚合,但您的 select 对每一行进行操作,因此不能在同一行上下文中执行这两个语句。

您需要做的是计算一次查询中的最大值,然后与不同上下文中的每一行进行比较。这可以通过连接在 select 内完成。

select 
date_diff('second',
          timeseries.timestampminute,
          max_query.maxts) as elapsed_sec
from timeseries
cross join (select max(timeseries.timestampminute) maxts 
            from timeseries) 
         as max_query