如何根据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 告诉您的查询。
抱歉,我不太了解 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 告诉您的查询。