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)
}
我认为您正在尝试按列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 中的值小于该列中的最大值的行。
归档时间: |
|
查看次数: |
4685 次 |
最近记录: |