5

我有一个指向内容的 URL,我需要获取其中一列中包含的最高值。是否有任何聚合函数可以完成此操作,还是我必须手动执行此操作?

4

3 回答 3

19

如果您正在查询 Android 内容提供程序,您应该能够通过传入MAX(COLUMN_NAME)以下的 selection 参数来实现ContentResolver.query

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

其中 Uri 是内容提供者的地址。这应该返回 COLUMN_NAME 中具有最高值的单行。

于 2009-06-04T00:20:11.253 回答
1

Android 的数据库使用 SQLite,所以SELECT MAX(thecolumn) FROM TheTable应该可以工作,就像在任何其他 SQLite 实现中一样(或者就此而言,任何其他 SQL,“ite”与否;-)。(如果你不使用android.database你最好指定你使用的是什么;-)

于 2009-05-25T16:12:19.083 回答
1

那对我有用。

基于@Reto Meier 和@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;
}
于 2018-08-21T18:39:30.347 回答