我的问题类似于以下帖子: Find largest value among repeated entries in an sql table
但这是针对mysql的,我无法理解它在sqlite中的翻译方式。
我想从我的表pages
中获得metadata
的最大值,其中有多个file_ids
和多个条目
我的表格包含我感兴趣的两列。
file_id pages
1 2
1 5
2 10
3 20
4 12
4 1
5 4
6 5
6 14
7 12
我正在寻找的是
file_id pages
1 5
2 10
3 20
4 12
5 4
6 14
7 12
我正在尝试查询,但不知道如何
String[]cols = {"file_id","pages"};
String groupBy = {"pages"};
所有其他参数为null
这是我所能想到的。
查询将是什么样的。请帮忙。
我希望查询使用普通的sqlite格式,而不是原始查询。
答案 0 :(得分:2)
这使用了query()
方法:
String tableName = "metadata";
String[] cols = {"file_id", "max(pages) AS pages"};
String[] groupBy = {"file_id"};
Cursor cursor = db.query(tableName, cols, null, null, groupBy, null, null);
用您的SQLiteOpenHelper变量替换db
。
答案 1 :(得分:1)
奇怪的M D的查询运行。如果使用分组依据,则只有组密钥和聚合列可以在选择列表中。因此页面无效,请选择列。
正确的查询应为
SELECT file_id, MAX(pages) from tbl_test GROUP BY file_id
答案 2 :(得分:0)