Agrupar por consulta, mostrando alguns resultados inesperados no modo de exibição de lista android

Eu tenho uma exibição de lista na qual estou mostrando mensagens recebidas de números de contato. Agora, o problema era que, se eu recebi 5 mensagens de "1234567" e 3 mensagens de "56789", minha lista de exibição principal mostrava 8 mensagens, embora eu só queira mostrar 1 1 mensagem por esses dois números na minha lista principal semelhante a aplicativos sms como threads e clique no item, as mensagens restantes devem aparecer para esse número específico. Alguém me respondeu para usar a consulta Agrupar por número de telefone para consultar os resultados por número de telefone. Quando qualquer sms recebido eu salvei na tabela nomeada como "smss". Este é o meu código ao buscar dados do banco de dados:

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 é o meu código para salvar sms no banco de dados:

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();

  }

Agora apliquei group by query no método fetchScreenSms sugerido por alguém, mas se aplicado, o listview não mostra nada, ou seja, esvazia os dados do listview:

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

Isso é sugerido por alguém, mas não mostra nada na exibição de lista e, quando aplico isso, o listview mostra os dados relacionados a esse número.

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

Após essa consulta, o listview mostra uma mensagem desse número no meu listview principal e, em seguida, 5 mensagens dentro dele. É exatamente isso que eu quero. Mas por que a consulta superior não está funcionando? Quero mostrar as duas mensagens de números

O que e onde está ocorrendo o problema? Não mostrando resultados ao usar o grupo simples por consulta, mas mostrando o resultado quando eu especifico o número no grupo por. Alguém por favor me ajude estou preso