Question

J'ai un pointage URL au contenu et je dois obtenir plus de valeur contenue dans l'une des colonnes. Y at-il fonction d'agrégation qui accomplira cela ou dois-je faire manuellement?

Était-ce utile?

La solution

Si vous interrogez un fournisseur de contenu Android, vous devriez être en mesure d'atteindre cet objectif en passant MAX(COLUMN_NAME) pour le paramètre de sélection de ContentResolver.query:

getContentResolver().query(uri, projection, "MAX(COLUMN_NAME)", null, sortOrder);

Où Uri est l'adresse du fournisseur de contenu. Cela devrait revenir la seule ligne avec la valeur la plus élevée COLUMN_NAME.

Autres conseils

La base de données SQLite Android utilise, donc SELECT MAX(thecolumn) FROM TheTable devrait fonctionner, comme dans toute autre application SQLite (ou pour tout autre question que SQL, « ite » ou non ;-). (Si vous ne l'utilisez android.database vous feriez mieux de spécifier ce vous utilisez au lieu; -).

qui a fonctionné pour moi.

Sur la base des réponses de @Reto Meier et @Florian von Stosch.

public static long getMaxId(Context context) {

    long maxId = 0;

    Cursor maxCursor = context.getContentResolver().query(
            ProviderContentContract.CONTENT_URI,
            new String[]{"MAX(" + Table._ID + ")"},
            null,
            null,
            null);

    if (maxCursor != null && maxCursor.moveToFirst()) {
        maxId = maxCursor.getInt(0);
         maxCursor.close();
    }
    return maxId;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top