AWS Athena SQL基于一列和一个静态值添加日期差异列
我正在尝试运行以下查询:AWS Athena SQL基于一列和一个静态值添加日期差异列,sql,amazon-web-services,amazon-athena,presto,Sql,Amazon Web Services,Amazon Athena,Presto,我正在尝试运行以下查询: select date_diff('second',timeseries.timestampminute,max(timeseries.timestampminute)), as elapsed_sec, timeseries.grouttake from timeseries 因为我希望经过的时间是表中最高的datetime值与表中每一行之间的时间,但我不断遇到错误: 语法错误:第1:8行:““timeseries”。“grouttake”必须是 聚合表达式或出现在
select date_diff('second',timeseries.timestampminute,max(timeseries.timestampminute)),
as elapsed_sec,
timeseries.grouttake
from timeseries
因为我希望经过的时间是表中最高的datetime值与表中每一行之间的时间,但我不断遇到错误:
语法错误:第1:8行:““timeseries”。“grouttake”必须是
聚合表达式或出现在GROUP BY子句中“
有什么想法吗?由于
max
是一个聚合,但select对每一行进行操作,因此这两条语句不能在同一行上下文中执行
您需要做的是计算一个查询中的最大值,然后在不同的上下文中与每一行进行比较。这可以在一个select-through联接中完成
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
我认为查询中有错误。以秒为单位,前面有逗号。您还可以提供timeseries的示例行吗?