我试图在我的sQLite数据库中的列中找到某些值的平均值。此列具有一些null和一些非null值。我需要计算基于最后1,5或10个非空值的平均值。但是当我尝试通过我的查询获取数据时,我总是将游标变为null。 请帮助。 继承我的代码,用于获取里程的最后一个非空值。
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));
}
}
答案 0 :(得分:0)
在通过调用moveToFirst
或类似函数强制光标实际读取数据之前,您无法读取列数。