你好,感谢接受我的问题,我有以下数据收集传感器和我需要得到只有最新的变化从所有数据,我使用sqlite与sqliteStuidio,请帮助我的查询,我可以使用得到预期的数据。先谢谢你。请查看图片,因为表格格式不正确。
data image
输入数据:
| 串行|钥匙|时间戳|价值|
| - -----|- -----|- -----|- -----|
| 0|十二岁|20230531010945| 1|
| 0|十一|20230531010912| 0|
| 0|十个|20230531010657| 1|
| 0|九个|20230531010648| 0|
| 1|八|20230531010551| 1|
| 1|七个|20230531010539| 0|
| 1|六|20230531010521| 0|
| 0| 5个|20230531010346| 0|
| 0| 4| 20230531000935| 1|
| 0| 3| 20230531000928| 0|
| 1| 2| 20230531000724| 1|
| 0| 1| 20230531000652| 1|
预期数据:
| 串行|钥匙|时间戳|价值|
| - -----|- -----|- -----|- -----|
| 0|十二岁|20230531010945| 1|
| 1|八|20230531010551| 1|
到目前为止我已经尝试了一些组合但失败了。。
SELECT sensor_data.[sensor_serial], sensor_data.[key],sensor_data.[time], sensor_data.[value]
FROM sensor_data
WHERE sensor_serial = (SELECT sensor_serial FROM sensor_data)
ORDER BY time DESC
其输出为:
0 12 20230531010945 1
0 11 20230531010912 0
0 10 20230531010657 1
0 9 20230531010648 0
0 5 20230531010346 0
0 4 20230531000935 1
0 3 20230531000928 0
0 1 20230531000652 1
2条答案
按热度按时间bq8i3lrv1#
这可以通过以下方式完成:
首先,我们使用
group by
和max()
确定每个sensor_serial的最大时间:然后将此数据集与表连接:
Demo here
zi8p0yeb2#
请尝试:
或者使用公共表表达式:
如果几个记录可能具有完全相同的时间戳,但密钥是唯一的,那么您可以尝试: