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

时间:2010-09-18 22:35:11

标签: android sql sqlite

嘿,我正在尝试查询在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;

}

1 个答案:

答案 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的行。