我在 SQLite 表中有遥测记录,其中包含三个字段:
record_name
、record_time
、record_value
。
我想从表中为每个
record_name
选择最新值。我想出了这个:
SELECT
record_name, record_value
OVER (
PARTITION BY record_name ORDER BY record_time RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
) AS group_concat
FROM CoverageRun ORDER BY record_time
但我收到错误:
[SQLITE_ERROR] SQL error or missing database (near "(": syntax error)
驱动版本为3.44。应该支持这个。错误是什么?
这是您选择最近时间的方式:
select record_name, max(record_time) as rt
from CoverageRun
group by record_name;
这将按名称对您的结果进行分组,并查找每个结果的最近时间。现在我们已经掌握了诀窍,让我们提取与组相关的值:
select CoverageRun.record_name, CoverageRun.record_time, CoverageRun.record_value
from CoverageRun
join (
select record_name, max(record_time) as rt
from CoverageRun
group by record_name
) t
on CoveragRun.record_name = t.record_name and CoverageRun.record_time = t.rt;