2014-06-18 123 views
3

我有一個表,其中一個特定列的值重複次數。 我想計算它發生的次數。在sqlite,android中計算特定列值的出現次數?

讓我們假設數據庫有一列作爲「選擇」在表中重複5次。 我如何計算它?

這是我使用

public String getCountSelect() { 
    String count = ""; 
    String selectQuery = "SELECT COUNT (" + KEY_DEALER_NAME + ") FROM " 
      + TABLE_DEALER + " WHERE " + KEY_DEALER_NAME + " = 'Select'"; 
    Log.e("", selectQuery); 
    SQLiteDatabase db = this.getWritableDatabase(); 
    Cursor cursor = db.rawQuery(selectQuery, null); 
    if (cursor.moveToFirst()) { 
     do { 


      Log.e("", cursor.getString(cursor 
        .getColumnIndex(KEY_DEALER_NAME))); 
     } while (cursor.moveToNext()); 
    } 
    db.close(); 
    return count; 
} 

回答

3

嘗試這種方式

String selectQuery = "SELECT " + KEY_DEALER_NAME + " FROM " 
     + TABLE_DEALER + " WHERE " + KEY_DEALER_NAME + " = 'Select'"; 

Cursor cursor = db.rawQuery(selectQuery, null); 

int total_count=cursor.getCount(); 

光標.getCount()方法返回總的受影響行的代碼。

0

激發您的查詢並返回光標。並且在遊標上執行.getCount()函數,它將爲您提供查詢的總值。

代碼: -

cursor.getCount(); 
1

返回列的名稱是你寫SELECT子句中的東西,即COUNT(DealerName)。 但是,這並不重要,因爲你可以使用列的索引,即,你知道這是0列

。不管怎麼樣,COUNT查詢返回一個值,所以你可以使用一個DatabaseUtils輔助函數來使你的代碼簡單。

最後,COUNT(*)是多一點點高效:

public long getCountSelect() { 
    SQLiteDatabase db = getReadableDatabase(); 
    try { 
     String selectQuery = 
       "SELECT COUNT(*)" + 
       " FROM " + TABLE_DEALER + 
       " WHERE " + KEY_DEALER_NAME + " = 'Select'"; 
     return DatabaseUtils.longForQuery(db, selectQuery, null); 
    } finally { 
     db.close(); 
    } 
} 
相關問題