抱歉,我不太了解 SQL 语法。基本上,我的表中有以下列:
ID GAME DRAW NUMBER
x 0 23
x 1 34
x 0 24
x 1 35
x 1 33
我想根据 GAME 列值获得最大 DRAW NUMBER。 例如,如果我选择第 1 场比赛,我想获得 35 的开奖号码(即,第 1 场比赛的最高开奖号码是 35)
我想到的最好的是:
String table = "xxx", col = "DRAW NUMBER", game_col = "GAME";
SQLiteDatabase db = this.getReadableDatabase();
Cursor c = db.query(table, null, col+"=(SELECT MAX("+col+") FROM " + table + " GROUP BY " + game_col + ")", null, null, null, null);
.
我还想根据 GAME 值获取特定游戏的计数。 这是我目前所拥有的:
int game_val = 1, row_count;
String table = "xxx", game_col = "GAME";
SQLiteDatabase db = this.getReadableDatabase();
Cursor c = db.rawQuery("SELECT COUNT(*) FROM " + table + " WHERE " + game_col + " = " + game_val + "", null);
row_count = c.getCount();
提前致谢!
最佳答案
你可以使用 rawQuery
对于特定的游戏,只需将 1 替换为一个变量(编辑:删除分组依据,在这个游戏中不需要,谢谢 Bae)
Cursor c = db.rawQuery("SELECT max(DRAW NUMBER) FROM xxx WHERE GAME = 1", null);
所有游戏的最大数量列表
Cursor c = db.rawQuery("SELECT GAME, max(DRAW NUMBER) FROM xxx GROUP BY GAME", null);
关于android - 如何根据 sqlite for Android 中的另一列值获取一列的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27856292/