seleccione el valor distintivo en sqlite de Android

Intento ejecutar la siguiente consulta en Android, parece que no funciona

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

entonces decido usar el método query () en android que son algo así como

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

¿Alguien puede mostrarme cómo seleccionar la categoría distinta para usar query () en lugar de rawquery, cualquier ayuda será muy apreciada!

Puedes usar este método:

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

Aquí el primer argumento especifica si se debe usar distinct o not.

Pero DEBE recordar enviar un argumento en GROUPBY ( NOT NULL enviar).

Debe dar el nombre de la columna para distinct .

Ejemplo:

 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 – nombra la columna de lo que tienes que ser DISTINCT.

Eso es bueno para mí.

Hay varias formas, como ya marcado verde. Pero si alguien está buscando obtenerlo a través de una consulta sin formato, aquí tiene:

 String query = "SELECT DISTINCT(category) FROM event"; 
 Cursor res=db.rawQuery("select column1 column2... Distinct column3 from "+Table_name, null); 

column3 es una columna distinta