2017-08-01 34 views
0
单列计算SUM

我使用的是最新版本的DBFLOW库,我尝试计算总和单列作为countOfNewPosts与DbFlow

这是我的表:

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(); 

我没有得到任何错误,这是这一结果:

截图:

enter image description here

发生什么和在哪里count这个结果?

回答

0

问题解决

想一想。您正在致电

SELECT SUM(`countOfNewPosts`) as 'count' FROM `CafeWebNewPostInformation` 

意味着您返回的结果仅包含该查询的单行计数。你不会得到任何错误,因为我们没有在光标上实现严格的列匹配。您需要定义一个@QueryModelQueryModels已经调用数的单场:

@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(),而不是你。

reference