Как получить значения строки по поведению значения столбца в SQLite? - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть такая таблица

  User-ID     RANK        Dept     LEVEL-PASSED         
 -------     ------       -----     --------  
    1          950         TECH        54
    2          525         TECH        32
    3          379         TECH        23
    4          955         AGRI        54
    5          956         AGRI        54
    6          558         AGRI        32

От имени отдельных значений в столбце "уровень пройден", я хочу получить с него значение Dept.

Как я могу это сделатьэто в sq-lite android.

Cursor cursor = db.query(true, TABLE_NAME, new String[] { LEVEL-PASSED}, null, null, null, null, null, null);

Это извлекает различные значения переданного уровня, т.е. 54,32,23, но с ним я также хочу получить значения глубины.

ожидаемый результат будет таким:

Dept     LEVEL-PASSED 
TECH        54
TECH        32
TECH        23

Мне все равно, имеет ли Dept TECH или AGRI.Отличительное должно только принести некоторое умелое значение с этим.

1 Ответ

0 голосов
/ 20 сентября 2019

SQLite разрешает в списке выбора не агрегированные столбцы, когда вы group by ..., поэтому используйте эту функцию , поскольку вам все равно, какой отдел будет возвращен:

Cursor cursor = db.rawQuery("select dept, [level-passed] from " + TABLE_NAME + " group by [level-passed]", null);

Илииспользуйте MAX() или MIN() для агрегирования, если вам нужен стандартный SQL:

Cursor cursor = db.rawQuery("select max(dept) dept, [level-passed] from " + TABLE_NAME + " group by [level-passed]", null);
...