我正在尝试运行以下查询:
select date_diff('second',timeseries.timestampminute,max(timeseries.timestampminute)),
as elapsed_sec,
timeseries.grouttake
from timeseries
因为我希望经过的时间是表中日期时间的最高值与表中每一行之间的时间,但我不断遇到错误:
“ SYNTAX_ERROR:第1:8行:'“ timeseries”。“ grouttake”'必须为 聚合表达式或出现在GROUP BY子句中
有什么想法吗?
答案 0 :(得分:1)
由于max
是一个聚合,但是您的选择操作在每一行上,因此两个语句不能在同一行上下文中执行。
您需要做的是在一个查询中计算最大值,然后与不同上下文中的每一行进行比较。可以通过联接在一个选择中完成。
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