android多次查询数据库,获取数据库查询中出现不同条目的次数(Android)

我有一些棘手的问题。我的应用程序将用户数据输入到SQLite数据库中,并且我设法编写查询来恢复数据。获取数据库查询中出现不同条目的次数(Android)

这包括一个获取不同值的列表的查询,一个例子可能如下。假设你有以下数据:

Column a | Column b | Column c

a a a

a b b

a b b

b b b

“按组”功能使用,查询将创建以下列表:

aaa

abb

bbb

那么,我想,但没有做的是扩大这一并获得出现各个不同项目的次数的计数 - 因此,在上述情况下,它应该是这样的:

1 x aaa

2 x abb

1 x bbb

那么,有没有一种方式,一旦你查询的数据库,以获得的计数居住地o f各自不同的入口,从光标 - 或者我需要写一个单独的查询来获取这些信息..

这里是我的查询,因为它看起来的时刻:

public Cursor fetchDamagedComponentSpecForInspection(long inspectionId, String componentType) {

Cursor mCursor = rmDb.query(true, DAMAGED_COMPONENTS_TABLE, new String[] {

DAMAGED_COMPONENT_ID,

LOCATION_LINK,

RUN_LINK,

AREA_LINK,

INSPECTION_LINK,

LOCATION_REF,

RACKING_SYSTEM,

COMPONENT,

COMPONENT_TYPE,

QUANTITY,

POSITION,

RISK,

ACTION_REQUIRED,

NOTES_GENERAL,

MANUFACTURER,

TEXT1,

TEXT2,

TEXT3,

TEXT4,

NOTES_SPEC,

SPEC_SAVED},

INSPECTION_LINK + " = " + inspectionId + " AND " + COMPONENT_TYPE + " = ? AND " + SPEC_SAVED + " = ? ",

new String[] {componentType, "Yes"},

MANUFACTURER + ", " + TEXT1 + ", " + TEXT2 + ", " + TEXT3 + ", " + TEXT4 + ", " + NOTES_SPEC,

null, null, null);

if (mCursor != null) {

mCursor.moveToFirst();

}

return mCursor;

}

有关其他信息,这里是我的主要活动的代码,我调用查询和检索数据:

final Cursor componentsAndSpecCursor = (Cursor) rmDbHelper.fetchComponentsAndSpecForManufacturer(inspectionId, rackingSystem, manufacturer);

if(componentsAndSpecCursor.moveToFirst()){

do {

componentType = componentsAndSpecCursor.getString(componentsAndSpecCursor.getColumnIndex(RMDbAdapter.COMPONENT_TYPE));

specText1 = componentsAndSpecCursor.getString(componentsAndSpecCursor.getColumnIndex(RMDbAdapter.TEXT1));

specText2 = componentsAndSpecCursor.getString(componentsAndSpecCursor.getColumnIndex(RMDbAdapter.TEXT2));

specText3 = componentsAndSpecCursor.getString(componentsAndSpecCursor.getColumnIndex(RMDbAdapter.TEXT3));

specText4 = componentsAndSpecCursor.getString(componentsAndSpecCursor.getColumnIndex(RMDbAdapter.TEXT4));

specNotes = componentsAndSpecCursor.getString(componentsAndSpecCursor.getColumnIndex(RMDbAdapter.NOTES_SPEC));

message.append(componentType).append(" ").append(specText1).append(" ").append(specText2).append(" ").append(specText3).append(" ").append(specText4).append(" ").append(specNotes).append("\r\n");

}

while (componentsAndSpecCursor.moveToNext());

}

componentsAndSpecCursor.close();

所以我也是不知道我将如何得到计数一次我已经包含在我的查询该位的代码(我仍然看不到它是如何完成的!)。

+0

你能提供一个你用于'group by'的代码的例子吗? –

+0

您好Gordon,它在上面的查询中 - 请参阅以下行:“MANUFACTURER +”,“+ TEXT1 +”,“+ TEXT2 +”,“+ TEXT3 +”,“+ TEXT4 +”,“+ NOTES_SPEC, - 这是由变量组成的组(如果您不想分组,则可以将其保留为空)。 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值