Home » Android » select distinct value in android sqlite

select distinct value in android sqlite

Posted by: admin April 23, 2020 Leave a comment


I try to run the following raw query in android, it seems not work

String query ="SELECT DISTINCT category FROM event";
Cursor  cursor = mDb.rawQuery(query, null);
if (cursor != null) {
return cursor; 

so I decide to use the query() method in android which are something like

Cursor mCursor = mDb.query(EVENT_TABLE, new String[] {KEY_ROWID, KEY_CAT}, null, null,null,null, null)

Can anyone show me how to select the distinct category for using query() instead of rawquery please, any help will be greatly appreciated!

How to&Answers:

You can use this method:

public Cursor query (boolean distinct, String table, 
                     String[] columns, String selection, 
                     String[] selectionArgs, String groupBy, 
                     String having, String orderBy, String limit)

Here first argument specifies whether to use distinct or not.


But you MUST remember to send argument in GROUPBY (NOT NULL send).

You must give column name for distinct.


Cursor cursor = db.query(true, YOUR_TABLE_NAME, new String[] { COLUMN_NAME_1 ,COLUMN_NAME_2, COLUMN_NAME_3 }, null, null, COLUMN_NAME_2, null, null, null);

true – distinct TRUE

COLUMN_NAME_2 – name column what you have be DISTINCT.

That’s works for me fine.


There are multiple ways, as already green ticked. But if somebody is looking to get it via raw query then here you go:

String query = "SELECT DISTINCT(category) FROM event";


Cursor res=db.rawQuery("select column1 column2...  Distinct column3 from "+Table_name, null);

column3 is a distinct column