Android:在列中获取最高值

Posted

技术标签:

【中文标题】Android:在列中获取最高值【英文标题】:Android: Get highest value in column 【发布时间】:2010-10-28 17:54:56 【问题描述】:

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

【问题讨论】:

【参考方案1】:

如果您查询的是 android 内容提供者,您应该可以通过将 MAX(COLUMN_NAME) 传递给 ContentResolver.query 的选择参数来实现:

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

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

【讨论】:

"MAX(COLUMN_NAME)" 应该用作投影,而不是选择。 为什么要设置 sortOrder?【参考方案2】:

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

【讨论】:

我正在使用 ContentResolver.query(...)。那里有可能吗?使用什么字段?【参考方案3】:

对我有用的。

基于@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;

【讨论】:

以上是关于Android:在列中获取最高值的主要内容,如果未能解决你的问题,请参考以下文章

拆分 url 并在列中从该 URl 获取值

微软访问。记录一堆列中最高数字的位置

Parse Android SDK - 基于 Android SDK 中的指针查询

SQL Server 在列中并发 5 个时间戳

在列中查找值,填充'直到非空白单元格

Pandas:通过在列中查找子字符串改进算法