查询“cont”列中具有最大值的行

rog*_*gcg 2 sql sqlite android

嘿,我正在尝试查询在 cont 列中具有最大值的单词。例如:如果单词“test1”在 cont 中的值为 5,而“test2”的值为 2,则“test1”将显示在第一个位置。知道了?

所以。我正在尝试这样做,但它返回以下错误:

09-18 22:24:04.072:错误/AndroidRuntime(435):由:android.database.sqlite.SQLiteException:滥用聚合函数MAX():,编译时:SELECT word FROM words WHERE MAX(cont)ORDER BY续篇

这是我的方法:

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;
Run Code Online (Sandbox Code Playgroud)

}

mag*_*aio 5

我认为您正在尝试按列cont降序排序

在这种情况下,试试这个:

select * from words order by cont desc;
Run Code Online (Sandbox Code Playgroud)

您不应该需要 max() 来按列排序。

供参考:

max() 是聚合函数,需要选择。

select max(column) from table
Run Code Online (Sandbox Code Playgroud)

只返回一个值。

select * from TABLE where COLUMN < (select max(COLUMN) from TABLE);
Run Code Online (Sandbox Code Playgroud)

返回 COLUMN 中的值小于该列中的最大值的行。