代码之家  ›  专栏  ›  技术社区  ›  Egor Vasilyev

如何获取最后记录的值

  •  0
  • Egor Vasilyev  · 技术社区  · 6 年前

    有一个inflix数据库,其中写入了值。如何为名为“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;
        }
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   m.ghoreshi    6 年前

    您可以使用“last”函数获取最后一项:

    SELECT last(protocol) FROM device [optional: WHERE <your condition>]
    

    或者您可以使用limit(注意,我们应该使用降序):

    SELECT * FROM device ORDER BY desc LIMIT 1