Имея трудное время, ставя то, что я пытаюсь сделать словами, поэтому поиск также затруднен.Проверьте, существует ли значение в столбце для каждой группы.
В основном я пытаюсь выяснить, существует ли определенное значение в столбце, разбитом на группы, и затем распространять это значение вперед.
В этом примере я хочу проверить, завершил ли пользователь учебник и установил флаг, который переносится вперед.
pk | user | ... | activity
1 | A | ... | "login"
2 | A | ... | "started_tutorial"
3 | A | ... | "completed_tutorial"
4 | A | ... | "some other activity"
5 | A | ... | "logout"
5 | B | ... | "login"
6 | B | ... | "logout"
Я думаю, что это должно быть что-то вроде
select *,
check(activity in ('completed_tutorial')) as completed_activity
from tbl
, но я не думаю, что я могу использовать check
в операторе отбора и это будет постоянным, а не флаг установлен верно только после него был найден.
Пример того, что я пытаюсь получить:
pk | user | ... | activity | completed_tutorial
1 | A | ... | "login" | 0
2 | A | ... | "started_tutorial" | 0
3 | A | ... | "completed_tutorial" | 1
4 | A | ... | "some other activity" | 1
5 | A | ... | "logout" | 1
5 | B | ... | "login" | 0
6 | B | ... | "logout" | 0
Это полезно, но я не хочу фильтровать/удалять строки. Вместо этого я хочу иметь индикатор для каждой строки, чтобы определить, произошло ли это действие или нет. – user12202013
@ user12202013 См. Править. –