Подзапросы в sqlite. Посчитать количество выбранных элементов в группе

При формировании дерева объектов необходимо узнать все ли элементы в группе выбраны или нет.

В группе может быть подгруппы, неограниченная вложенность. Необходимо узнать, выбраны все элементы или несколько элементов или ничего не выбрано.

Возможно ли сделать один запрос в SQLite, и узнать сколько элементов выбрано в группе (включая подгруппы) и общее кол-во объектов в папке (включая подпапки)?

В итоге нужно получить такой стейт для группы:

sealed class GroupSelectState {
    object None: GroupSelectState()//ничего не выбрано
    object Any: GroupSelectState()//выбран хотя бы один объект в папке или в подпапках
    object All: GroupSelectState()//выбраны все объекты в папке и подпапках
}

Вот структура таблиц:

Таблица групп (Group)

|  id  | name | parentId |
|  1   | old  | null     |
|  2   | gaz  | 1        |
|  3   | kamaz| 1        |
|  4   | 54901| 3        |

Таблица объектов

|  id  | name       | groupId  |
|  1   | Kamaz 777  | 3        |
|  2   | Kamaz 767  | 3        |
|  3   | Kamaz 677  | 4        |
|  4   | Kamaz 766  | 4        |
|  5   | Gaz 556    | 2        |

Таблица выбранных объектов (если объекта нет в этой таблице, значит он не выбран)

|  id  | objectId   | isChecked |
|  1   | 1          | 1         |
|  2   | 2          | 1         |
|  3   | 3          | 0         |
|  4   | 4          | 0         |
|  5   | 5          | 0         | //если объект не разу не выбирался, то в таблице не будет записи по этому объекту

Ответы (0 шт):