使用 DbFlow 计算单列的 SUM
calculate SUM for single column with DbFlow
我正在使用最新版本的 DBFLOW
库,我正在尝试将单列的总和计算为 countOfNewPosts
这是我的 table:
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;
}
这是我从 table:
中获取的代码
CafeWebNewPostInformation countOfNewPost =
SQLite.select(
Method.sum(CafeWebNewPostInformation_Table.countOfNewPosts).as("count")
)
.from(CafeWebNewPostInformation.class).querySingle();
我没有收到任何错误,这是结果:
屏幕截图:
这个结果发生了什么,count
在哪里?
问题已解决
想一想。你打电话给
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()
.
我正在使用最新版本的 DBFLOW
库,我正在尝试将单列的总和计算为 countOfNewPosts
这是我的 table:
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;
}
这是我从 table:
中获取的代码CafeWebNewPostInformation countOfNewPost =
SQLite.select(
Method.sum(CafeWebNewPostInformation_Table.countOfNewPosts).as("count")
)
.from(CafeWebNewPostInformation.class).querySingle();
我没有收到任何错误,这是结果:
屏幕截图:
这个结果发生了什么,count
在哪里?
问题已解决
想一想。你打电话给
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()
.