获取多个条目中一行的最大值

时间:2019-05-03 08:51:11

标签: java android sqlite

我的问题类似于以下帖子: 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格式,而不是原始查询。

3 个答案:

答案 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)

怎么样

  

SELECT DISTINCT file_id,来自tbl_test GROUP BY file_id的页面

结果

enter image description here