Android SQLite分析游标数据

Android SQLite分析游标数据,android,sqlite,Android,Sqlite,我正在编写一个测验,并在SQLite数据库中记录每个答案。我的表格的格式如下: ID、会话、对错 1042102111244,0 2042102111244,1 042102111244,1 042102111244,1 042102111244,0 0421021111412,0 0421021111412,1 8,0421021111412,0 9,0421021111412,1 其中“会话”指某个测验开始的时间,每行代表一个答案(0=错误答案,1=正确答案) 我只关心“总量”,即每次测验正

我正在编写一个测验,并在SQLite数据库中记录每个答案。我的表格的格式如下:

ID、会话、对错
1042102111244,0
2042102111244,1
042102111244,1
042102111244,1
042102111244,0
0421021111412,0
0421021111412,1
8,0421021111412,0
9,0421021111412,1

其中“会话”指某个测验开始的时间,每行代表一个答案(0=错误答案,1=正确答案)

我只关心“总量”,即每次测验正确回答了多少问题(多少问题中有多少问题)

所以我的“梦想”光标是:

会话、正确答案、总答案
042102111244,3,5
0421021111412,2,4

有没有办法做到这一点?我很难找到一个合适的查询(无可否认,这不是一个编程问题,而是一个逻辑问题)

目前,我正在将所有条目读入光标
Cursor Cursor=db.query(MyDataSQLHelper.TABLE,null,null,null,
空,空)
我想我更愿意做一些“后处理”,但我不确定什么是最好的方法

谢谢你的帮助,

Nick

一个简单的原始查询如下:

Cursor cursor = db.rawQuery("select session, sum(rightwrong) as RightAnswers, count(rightWrong) as TotalNoOfQuestions from tablename group by session");
您将使用将同一会话中的所有行组合在一起,然后使用sum和count函数计算会话中的细分。注:此处的“总和”仅起作用,因为正确答案为1,错误答案为0,如果更改记录答案的方式,则必须稍微更改查询

我将尝试猜测db.query调用的外观:

String[] columns = {"Session", "sum(RightWrong) as RightAnswers", "count(RightWrong) as TotalNoOfQuestions";
String[] groupBy = {"Session"};


Cursor cursor = db.query("tablename", columns, null, null, groupBy, null, null);

我将字符串数组声明分隔开来,以便对其进行一些清理,但我认为其功能应该是相同的。

您使用的是GROUPBY子句

您正在使用 公共游标查询(字符串表、字符串[]列、字符串选择、, String[]SelectionAgs、String groupBy、String having、, 字符串排序规则(orderBy)

前。 Cursor Cursor=db.query(MyDataSQLHelper.TABLE, 新字符串[]{“Session”,“sum(rightError)RightAnswers”,“count(Session)TotalNoOfQuestions”}, 无效的 “会议”, 无效的 无效)

你再试一次