【发布时间】:2014-12-11 01:11:02
【问题描述】:
我正在从各种远程传感器收集数据,这些传感器每隔几秒就会发送一次数据。我记录了远程传感器的名称以及自上次从该仪器接收数据以来的时间差。每个仪器的数据以随机顺序出现,而不是按设定的时间间隔排列。
表格如下:
id instname timediff
1 inst01 1000
2 inst02 1100
3 inst01 1210
4 inst03 900
etc.
id 列是自动递增的。
我想要做的是获取每个工具最后 10 个值的平均时间差异。
我得到的最接近的是:
SELECT
inst AS Instrument,
AVG(diff / 1000) AS Average
FROM
(SELECT
instname AS inst, timediff AS diff
FROM
log
WHERE
instname = 'Inst01'
ORDER BY id DESC
LIMIT 0 , 10) AS two
显然,这只适用于 1 台仪器,我也不相信限制是否正常工作。我不知道仪器的名称,也不知道我将从其中收集多少数据。
如何使用 SQL 获得每个仪器最后 10 个值的平均 timediff?
【问题讨论】: