嘿,我正在尝试查询在cont列中具有最大值的单词。例如:如果单词“test1”的值为cont,而“test2”的值为2,则“test1”将显示在第一个位置。得到了吗?
如此。我试图这样做,但它返回以下错误:
09-18 22:24:04.072:ERROR / AndroidRuntime(435):引起:android.database.sqlite.SQLiteException:滥用聚合函数MAX():,同时编译:SELECT word FROM words WHERE MAX(cont )订购方式
这是我的方法:
public List<String> selectMaxCont(){
List<String> list = new ArrayList<String>();
Cursor cursor = this.db.query(TABLE_NAME, new String[]{"word"}, "MAX(cont)", null, null, null, "cont desc");
if(cursor.moveToFirst()){
do{
list.add(cursor.getString(0));
}while(cursor.moveToNext());
}
if(cursor != null && !cursor.isClosed()){
cursor.close();
}
return list;
}
答案 0 :(得分:4)
我认为您正在尝试降序排列 cont:
在这种情况下,试试这个:
select * from words order by cont desc;
您不应该需要max()来按列排序。
供参考:
max()是一个聚合函数,需要选择。
select max(column) from table
只返回一个值。
select * from TABLE where COLUMN < (select max(COLUMN) from TABLE);
返回COLUMN中的值小于该列中max的行。