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
我正在尝试 运行 以下查询:
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