我有一个URL指向的内容,我需要得到包含在其中的一列最高值。是否有将实现这一目标还是我必须这样做的任何聚合函数手动?

有帮助吗?

解决方案

如果您要查询的Android的内容提供商,你应该能够通过传递MAX(COLUMN_NAME)ContentResolver.query的选择参数来实现这一点:

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

其中URI是内容提供商的地址。这应返回的单列与COLUMN_NAME的最高值。

其他提示

Android的数据库使用SQLite,所以SELECT MAX(thecolumn) FROM TheTable应该工作,就像任何其他的SQLite实现(或与此有关的任何其他SQL,“伊特”或不;-)。 (如果你不使用android.database你最好指定的什么的你正在使用替代; - )。

在该适合我。

基于@Reto Meier和@Florian冯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;
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top