0

我试图在我的 SQLite 数据库的列中找到某些值的平均值。此列有一些空值和一些非空值。我需要根据最后 1、5 或 10 个非空值计算平均值。但是当我尝试通过我的查询获取数据时,我总是将光标设为空。请帮忙。这是我获取里程的最后一个非空值的代码。

 public void calculateAvgMileage(Prediction predictMileage) 
 {

     if(predictMileage.isChkLastMileage1()==true)
       {
String [] columns = new String[]{KEY_ROW_ID, KEY_KM, KEY_FUEL_QTY, KEY_FUEL_PRICE, KEY_TOTAL_COST, KEY_MILEAGE, KEY_DATE,KEY_TANK_FULL};
            predictionCursor = ourDatabase.rawQuery("SELECT * FROM fuel_table ORDER BY _id DESC LIMIT 1", null);

            if(predictionCursor!=null && predictionCursor.getColumnCount()>0)
            {
                predictionCursor.moveToLast();
                String predictionMileage= predictionCursor.getString(5);
                if(predictionMileage==null)
                {
                predictionCursor.moveToPrevious();
                }
                else
                {
                avgMileagePrediction.setpredictionMileage(Double.valueOf(predictionMileage));
                }
            }
4

1 回答 1

0

moveToFirst在通过调用或类似函数强制游标实际读取数据之前,您无法读取列数。

于 2013-07-19T16:42:07.470 回答