2015-12-09 88 views
0

當前計我有一個表中SQLite數據庫,如下所示:無法從SQLite數據庫在Android中使用Group By子句

JobId STRING,RigId STRING,area STRING,spares STRING,spare_id STRING

我想有行數的計數相同的spare_id,即如果4行有spare_id = 2,那麼返回的計數應該是4.

我寫了下面的查詢,但我沒有得到正確的計數。誰能告訴我爲什麼。我的代碼如下:

public int get_report_entry_spare_count(String jobId, 
     String RigID) { 

    String countQuery="SELECT *, COUNT(*) AS spare_id FROM spare_replaced GROUP BY spare_id "; 

    SQLiteDatabase database = this.getWritableDatabase(); 

    Cursor c = database.rawQuery(countQuery, null); 
    c.moveToFirst(); 
    int total = c.getInt(0); 
    // int total = c.getCount(); 
    c.close(); 
    return total; 
} 
+0

取代'c.getInt(0)''嘗試c.getInt(c.getColumnIndex( 「spare_id」));' –

+0

計數始終返回爲1次 – Tiny

+0

嘗試'DatabaseUtils.dumpCursorToString(C)'調試遊標數據。對於'COUNT(*)AS spare_id',由於您已經有相同名稱的列,因此請使用'spare_id_count'或其他內容替代'spare_id'。 –

回答

0

嘗試這個代碼。

public int get_report_entry_spare_count(String jobId, 
      String RigID) { 

     String countQuery="SELECT COUNT(*) AS spare_id FROM spare_replaced GROUP BY spare_id "; 

     SQLiteDatabase database = this.getWritableDatabase(); 

     Cursor c = database.rawQuery(countQuery, null); 
     c.moveToFirst(); 
     int total = c.getInt(0);   
     c.close(); 
     return total; 
    }