计算共享不同值SQLite / Android的项目数

时间:2018-02-03 03:15:38

标签: android sqlite cursor distinct

在我的应用程序中,我从列中的行接收DISTINCT值。我想要计算有多少项具有相同的值。一个例子是

如果我有一个数组{1,1,2,2,1,2,2,3}

我正在寻找为不同值1导出int 3的值,因为它在数组中出现3次。

设置是我在Android应用程序中使用SQLiteDatabase。

我正在寻求在我的适配器中获取信息,以便我可以显示计数

我的数据库助手进行了名为getGroupsList

的调用
   public ArrayList<String> getGroupsList(){
    ArrayList<String> allGroups = new ArrayList<>();

    String groupsList = "select DISTINCT " + Flower.COLUMN_GROUPS + " from " + Flower.TABLE_NAME;

    Cursor cursor =  getReadableDatabase().rawQuery(groupsList, null);
    if (cursor.getCount() > 0){
        cursor.moveToFirst();

        while(!cursor.isAfterLast()){
            allGroups.add(cursor.getString(0));
            cursor.moveToNext();
        }
    }

    cursor.close();

    return allGroups;
}

这将检索包含特定列中每个Distinct值的对象(如果这有助于理解上下文)。非常感谢您的协助。

1 个答案:

答案 0 :(得分:1)

您需要分组并进行统计。

Select flower.id, count(*) from flower group by flower.id;

这是一个类似的问题:

How to use count and group by at the same select statement