我创建了一个数据库,并提交了数据.有一列我想找到最大的价值.
这是我的数据库适配器中使用的方法:
public Cursor getBiggestInTheColumn() {
return db.query(DATABASE_TABLE, null,
"MAX(price)", null, null, null, null);
}
Run Code Online (Sandbox Code Playgroud)
它应该工作,但当我调用方法时:
cursor = dbadp.getBiggestInTheColumn();
Run Code Online (Sandbox Code Playgroud)
我得到像这样的运行时错误(LogCat):
07-14 12:38:51.852:ERROR/AndroidRuntime(276):引起:android.database.sqlite.SQLiteException:滥用聚合函数MAX():,同时编译:SELECT*FROM花费WHERE MAX(价格)
有任何想法吗?我怀疑这是由于查询错误,但这是我能想到的最好的.其他查询运作良好.
ste*_*las 52
如果您只想要最大的值,那么您希望SQL等效于:
SELECT MAX(price) FROM spendings
.
我倾向于使用db.rawQuery(String sql, String[] selectionArgs)
,所以它会:db.rawQuery("SELECT MAX(price) FROM spendings", null)
.
但我认为你可以这样做db.query(DATABASE_TABLE, new String [] {"MAX(price)"}, null, null, null, null, null);
.虽然我没有测试过.
小智 9
获取列的另一种方法是将查询设置为特定列的最大值,例如:
db.query(DATABASE_TABLE, null, "price=(SELECT MAX(price))", null, null, null, null)
Run Code Online (Sandbox Code Playgroud)
返回的游标将是数据库中的最高价格行.
小智 7
请将查询写为select max(price) as price from table name
.
结果光标遵循以下语句
cursor.getString(cursor.getColumnIndex("price"));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
61473 次 |
最近记录: |