我正在使用最新版本的DBFLOW
库,我正在尝试将总和单列计算为countOfNewPosts
这是我的表:
public class CafeWebNewPostInformation extends BaseModel {
@PrimaryKey
@Column
public int id;
@Column
public int cafeWebServerId;
@Column
public int countOfNewPosts;
@Column
@ForeignKey(tableClass = AlachiqCafeWebs.class,
references = @ForeignKeyReference(columnName = "parentId", foreignKeyColumnName = "id"))
private int parentId;
@Column
public int lastSavedId;
@Column
public int lastRequestedId;
@Column
public int lastRetrievedId;
}
这是我从此表中获取该代码的代码:
CafeWebNewPostInformation countOfNewPost =
SQLite.select(
Method.sum(CafeWebNewPostInformation_Table.countOfNewPosts).as("count")
)
.from(CafeWebNewPostInformation.class).querySingle();
我没有得到任何错误,这是结果:
截图:
此结果发生了什么以及count
在哪里?
答案 0 :(得分:1)
问题解决了
想一想。你在打电话SELECT SUM(`countOfNewPosts`) as 'count' FROM `CafeWebNewPostInformation`
意味着您获得的结果只包含该查询的一行计数。您不会收到任何错误,因为我们没有在Cursor上实现严格的列匹配。您需要定义一个@QueryModel
QueryModels,其中包含一个名为count的字段:
@QueryModel // (add database reference)
public class CountOfPost {
@Column
public int count;
}
然后
CountOfPost count = SQLite.select(
Method.sum(CafeWebNewPostInformation_Table.countOfNewPosts).as("count"))
.from(CafeWebNewPostInformation.class)
.queryCustomSingle(CountOfPost.class);
或者您可以而不是致电querySingle()
来电count()
。