计算sqlite,android中特定列值的出现次数?

时间:2014-06-18 13:29:46

标签: android sqlite

我有一张表,其中某个特定列的值重复了多次。 我想计算它出现的次数。

假设数据库在表中重复了5次“Select”列。 我怎么算呢?

这是我正在使用的代码

    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 个答案:

答案 0 :(得分:4)

试试这种方式

 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()方法返回受影响的总行数。

答案 1 :(得分: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();
    }
}

答案 2 :(得分:0)

触发查询并返回光标。并在光标上执行.getCount()函数,它为您提供查询的总值。

<强>代码: -

cursor.getCount();