如何根据sqlite中的另一列值获取一列的最大值Android

How to get Max value of one column based on another column value in sqlite for Android

抱歉,我不太了解 SQL 语法。基本上,我的表中有以下列:

ID     GAME      DRAW NUMBER
x      0         23
x      1         34
x      0         24
x      1         35
x      1         33

我想根据 GAME 列值获得最大 DRAW NUMBER。 例如,如果我 select 游戏 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 替换为一个变量(已编辑:删除了 group by,本次不需要,谢谢 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);

你只需要这个查询

Cursor cursor = db.rawQuery("SELECT MAX(DRAW_NUMBER) FROM your_table_here WHERE GAME = 1, null);

对于列表,您可以使用 Hrusilov 告诉您的查询。