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

计算共享公共不同值SQLite/Android的项目数,android,sqlite,cursor,distinct,Android,Sqlite,Cursor,Distinct,在我的应用程序中,我从列中的行接收不同的值。我想数一数有多少物品具有相同的价值。例如 如果我有一个数组{1,1,2,2,1,2,2,3} 我试图推导int 3的值,因为它在数组中出现了3次 设置是我在Android应用程序中使用SQLiteDatabase 我试图从适配器中获取信息,以便显示计数 我的数据库助手进行了名为getGroupsList的调用 public ArrayList<String> getGroupsList(){ ArrayList<Stri

在我的应用程序中,我从列中的行接收不同的值。我想数一数有多少物品具有相同的价值。例如

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

我试图推导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;
}
public ArrayList getGroupsList(){
ArrayList allGroups=新的ArrayList();
String groupsList=“从“+Flower.TABLE\u NAME”中选择DISTINCT”+Flower.COLUMN\u GROUPS+;
Cursor Cursor=getReadableDatabase().rawQuery(groupsList,null);
if(cursor.getCount()>0){
cursor.moveToFirst();
而(!cursor.isAfterLast()){
添加(cursor.getString(0));
cursor.moveToNext();
}
}
cursor.close();
返回所有组;
}

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

您需要分组进行计数

Select flower.id, count(*) from flower group by flower.id;
这是一个类似的问题:


为了澄清,此语句表示从flower表中获取flower的计数并按flowers分组?此语句表示按flower.id分组条目,对每个组中的条目数进行计数,并输出每个组的flower.id和计数。此查询似乎可行。在使用游标的过程中,我不确定我的方法是否应该期望项目(Flower)或integer的arraylist。到目前为止,我无法使用SQLite获得每个组中的成员数。我返回不同的项以及名称的长度计数。