我有一个指向内容的 URL,我需要获取其中一列中包含的最高值。是否有任何聚合函数可以完成此操作,还是我必须手动执行此操作?
问问题
7976 次
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 回答