我的数据库包含这些“移动”类的列表:
@PrimaryKey (autoGenerate = true)
private int NumeroDeOperacion;
private int FechaYear;
private int FechaMonth;
private int FechaDay;
private String TipoOperacion;
private String Category;
private String Notas;
private float Quantity;
在我的一个查询中,我只想检索 Category
以及 Quantity
所以我创建了另一个pojo对象,如下所示:
public class Category {
@ColumnInfo(name = "Category")
public String name;
@ColumnInfo(name = "Quantity")
public float quantity;
public Category(){}
}
我想要得到的是完全不同的 Category
在一个特定的年份和所有 Quantity
.
假设我有这样的东西:
Category Quantity
A 5
B 10
C 5
A 15
B 20
我想得到:
Category Quantity
A 20
B 30
C 5
我尝试了这个查询,但它只得到每个查询的最后一个条目 Category
:
@Query("SELECT DISTINCT Category, Quantity FROM OperacionesTable WHERE FechaYear = :year GROUP BY CategoryORDER BY Quantity DESC")
LiveData<List<Category>> getGastosCategoryTotalsInYear(int year);
任何帮助都将不胜感激。
提前谢谢
1条答案
按热度按时间kkih6yb81#
要计算数量,必须使用
SUM
.而且,没有必要
DISTINCT
,自GROUP BY
已经处理好了。我猜您添加了distinct,因为有一个错误。出现错误,因为quantity既不在GROUPBY列中,也不在聚合函数中使用。这通常是一个错误(mysql除外,它只会给你一个随机的结果)。不管怎样,这应该可以做到: