Подзапросы в 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 | //если объект не разу не выбирался, то в таблице не будет записи по этому объекту