ОБНОВЛЕНИЕ:
Может быть is_active = true после is_active = false, поэтому мне нужно получить последнее назначенное is_active = true и получить предыдущую запись is_active = false
У меня есть таблица с такой структурой
id (not pk but each group is incremental), name, grp, is_active (boolean)
с такими данными для группы 1
1, name1, group1, true
2, name2, group1, true
3, name3, group1, false
4, name1, group1, false
5, name2, group1, true
6, name3, group1, false <-- this is the next assigned id as the preceding record has an is_active = true
7, (names will differt, group the same and all false)...
... больше данных в той же таблице, но для группы 2
100, name1, group1, true
101, name2, group1, true
102, name3, group1, true
103, name1, group1, true
104, name2, group1, true
105, name3, group1, false <-- this is the next assigned id as the preceding record has an is_active = true
106, (names will differt, group the same and all false)...
У меня есть это, но оно не работает, как я хотел бы, чтобы
SELECT grp, COUNT(*)
FROM tbl_1
WHERE is_active = false
AND id > (
SELECT id
FROM tbl_1
WHERE is_active = true
ORDER BY id DESC
LIMIT 1
)
GROUP BY grp
Итак, я хотел бы получить ответ:
group1, 6
group2, 105
но я получаю только
group2, 105