具有SQL COUNT和SUM的复杂查询

use*_*212 5 sql android ormlite android-sqlite

我正在尝试使用Ormlite构建以下查询:

SELECT Column1,
      COUNT(Column2),SUM(Column2)

  FROM Table

  WHERE Column3 = 1

  GROUP BY Column1;
Run Code Online (Sandbox Code Playgroud)

我为此使用QueryBuilder,但是我不知道要得到总和,因此仍然只有一个完整的列表。

此结果列表将是哪种类型?我不能将其设为List,因为sum和count不是表中的列。

ATo*_*Tom 5

我正在用这种方式

QueryBuilder<UsageStats, Integer> b = dao.queryBuilder();
b.selectRaw("SUM(" + UsageStats.COLUMN_VALUE + ")");
b.groupBy(UsageStats.COLUMN_TYPE);
b.where().eq(UsageStats.COLUMN_TYPE, type.toString());
dao.queryRawValue(b.prepareStatementString());
Run Code Online (Sandbox Code Playgroud)


Gra*_*ray 2

我正在使用 QueryBuilder 来完成此任务,但我无法弄清楚如何获取总和,但结果仍然是一个完整的列表。

一旦使用COUNTSUM,您应该使用原始查询而不是返回实体的查询。通过原始查询,您可以直接获取字符串结果列,也可以使用行映射器映射选定的列和值。

请参阅此处的文档:

http://ormlite.com/docs/raw-queries