Agrupar por consulta que muestra algunos resultados inesperados en la vista de lista android

Tengo una vista de Lista en la que estoy mostrando los mensajes recibidos de los números de contacto. Ahora el problema era que si recibía 5 mensajes de "1234567" y 3 mensajes de "56789", mi vista de lista principal mostraba 8 mensajes, aunque solo quiero mostrar 1 1 mensaje por estos dos números en mi lista principal similar a las aplicaciones de SMS como hilos y al hacer clic en el elemento, deben aparecer los mensajes restantes para ese número en particular. Alguien me responde que use la consulta Agrupar por número de teléfono para consultar los resultados por número de teléfono. Cuando recibí un sms, lo guardé en la tabla llamada "smss". Este es mi código cuando recupero datos de la base de datos:

public ArrayList<Sms> fetchScreenedSms() {
  Sms a = new Sms();
ArrayList<Sms> smsInbox = new ArrayList<Sms>();
String query_fetchSMS = "select * from " + "smss" +  " group by " + "contactnumber" + "\"" ;
DBtableforNotSpam smsD = new DBtableforNotSpam(this);
SQLiteDatabase dbw = smsD.getWritableDatabase();
Cursor cursor = dbw.rawQuery(query_fetchSMS, null);
if (cursor != null) {
  cursor.moveToLast();
  if (cursor.getCount() > 0) {

    do {

      Sms message = new Sms();
      message.id = cursor.getInt(cursor
          .getColumnIndex("id"));
      message.messageNumber = cursor.getString(cursor
          .getColumnIndex("contactnumber"));
      message.messageSender = cursor.getString(cursor
          .getColumnIndex("contactname"));
      message.messageContent = cursor.getString(cursor
          .getColumnIndex("message"));
      message.setDate(cursor.getString(cursor
          .getColumnIndex("date")));
      smsInbox.add(message);
    } while (cursor.moveToPrevious());
  } else {
     empty.setVisibility(View.VISIBLE);
    }

este es mi código para guardar sms en la base de datos:

public void screenMessagee(Context context, String msg_from, String msgSender,
    String msgBody, String msgDate) {
    DBtableforNotSpam smsdb = new DBtableforNotSpam(context);
    SQLiteDatabase dbw = smsdb.getWritableDatabase();

    String query_insertSMS = "insert into " + "smss" + "(" + "contactnumber" + "," + "contactname" + "," + "message"
        + "," + "date" + ") values (\"" + msg_from.toString() + "\", \"" + msgSender + "\",\"" + msgBody
        + "\",\"" + msgDate + "\")";

    dbw.execSQL(query_insertSMS);
    smsdb.close();
    dbw.close();
    abortBroadcast();

  }

Ahora apliqué grupo por consulta en el método fetchScreenSms sugerido por alguien, pero si se aplica esto, la vista de lista no muestra nada, es decir, está vacía de datos de vista de lista:

String query_fetchSMS = "select * from " + "smss" +  " group by " + "contactnumber" + " = \"" + "\"" ;

Alguien sugiere esto, pero no muestra nada en la vista de lista y cuando aplico esto, la vista de lista muestra datos relacionados con ese número.

String query_fetchSMS = "select * from " + "smss" +  " group by " + "contactnumber" + " = \"" + "1234567" + "\"" ;

Después de esta consulta, la vista de lista me muestra un mensaje de este número en mi vista de lista principal y luego 5 mensajes dentro de esta. Esto es exactamente lo que quiero. Pero, ¿por qué la consulta superior no funciona? Quiero mostrar ambos mensajes de números

¿Qué y dónde está ocurriendo el problema? No se muestran resultados cuando se usa un grupo simple por consulta, pero se muestran resultados cuando especifico un número en group by. Alguien por favor ayuda Iam atascado