首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >android内容提供商总和查询

android内容提供商总和查询
EN

Stack Overflow用户
提问于 2011-05-02 15:01:45
回答 4查看 4.5K关注 0票数 6

当我需要sum(column)时,是否可以使用getContentResolver().query()

我必须对数据库句柄进行原始查询吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-05-04 00:22:03

好的,看起来使用getContentResolver().query()是不可能的。我必须连接到数据库并创建rawQuery

代码语言:javascript
运行
复制
 ContentProviderClient client =  getContentResolver().acquireContentProviderClient(AUTHORITY);
 SQLiteDatabase dbHandle= ((MyContentProvider)client.getLocalContentProvider()).getDbHandle();
 Cursor cursor = dbHandle.rawQuery("SELECT sum("+COLUM_NNAME+") FROM "+TABLE_NAME +" WHERE "+WHERE_CLAUSE , null);
 cursor.moveToFirst();
 int cnt =  cursor.getInt(0);
 cursor.close();
 cursor.deactivate();
 client.release();
票数 4
EN

Stack Overflow用户

发布于 2011-08-17 04:58:30

在向ContentResolver.query提供列数组时,使用sum()函数对列名进行包装

代码语言:javascript
运行
复制
String[] columns = new String[] { "sum(" + columnName + ")" };

Cursor cursor = getContentResolver().query(
    content_uri,
    columns,
    selection,
    selectionArgs,
    sort
);

cursor.moveToFirst();

int columnSum = cursor.getInt(0);
票数 6
EN

Stack Overflow用户

发布于 2016-03-19 03:11:26

接受的答案是错误的

与一样,IT在企业中也是可能的

代码语言:javascript
运行
复制
 String[] columns = new String[] { "sum(" + columnName + ")" };

    Cursor cursor = getContentResolver().query(
        content_uri,
        columns,
        selection,
        selectionArgs,
        sort
    );
int columnSum = cursor.getInt(0);

汤姆犯的唯一错误是他忘了做:

代码语言:javascript
运行
复制
cursor.moveToFirst();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5854343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档