有一个Inflix DB数据库,其中写入了值。如何获取名为“ test”的设备的最后记录的数据(例如,协议编号和时间很长)。 试图通过查询,但它只返回一个点,尽管数据库中大约有40个点。 下面是示例代码。
public static long getTime( String devName ) {
InfluxDB influxDB = InfluxDBFactory.connect("http://10.10.1.72:8086");
String sql = "select time, protocol from device";
Query query = new Query( sql, dbName );
QueryResult result = influxDB.query(query);
Series series = result.getResults().get(0).getSeries().get(0);
//long time = (long)(double)series.getValues().get(0).get(0);
System.out.println(series.getColumns().get(0) + "=" + series.getValues().get(0).get(0) + " " + series.getValues().get(0).get(0).getClass().getName());
System.out.println(series.getColumns().get(1) + "=" + series.getValues().get(0).get(1) + " " + series.getValues().get(0).get(1).getClass().getName());
return 0;
}
答案 0 :(得分:1)
您可以使用“ last”功能获取最后一项:
SELECT last(protocol) FROM device [optional: WHERE <your condition>]
或者您可以使用限制(请注意,我们应该使用降序):
SELECT * FROM device ORDER BY desc LIMIT 1