У меня есть таблица, как следует:SQL: найти на основе предыдущего идентификатора
mysql> select * from tries;
+----+--------+-----------+
| id | person | succeeded |
+----+--------+-----------+
| 1 | 1 | 1 |
| 2 | 1 | 1 |
| 3 | 2 | 0 |
| 4 | 4 | 1 |
| 5 | 2 | 1 |
| 6 | 2 | 0 |
| 7 | 3 | 0 |
| 8 | 3 | 0 |
| 9 | 3 | 0 |
| 10 | 1 | 0 |
| 11 | 4 | 1 |
| 12 | 4 | 1 |
+----+--------+-----------+
Я хочу, чтобы люди, которые (по крайней мере) один try
, что удалось, после try
что потерпел неудачу (дается 1
и 0
, соответственно). Когда я говорю «следовать», я имею в виду предыдущую попытку того же человека, заданную более низким id
.
Так что в этом случае:
- Person 2 удались на
id = 5
, и не наid = 3
, предыдущая попытка этого человека, таким образом отвечает критериев. - Person 1 не имеет успеха, что сразу следуют неудачи, таким образом, не удовлетворяет критерию
- Person 3 не имеет успеха, таким образом, не удовлетворяет критерию
- Person 4 не имеет сбоев, таким образом, не удовлетворяет критерию
Как я бы написал такой запрос?
Это может быть вторая попытка попробовать между первой и первой неудачной попыткой. – ronaldosantana
@ Рональдо: Я не уверен, что я за тобой. Можете ли вы привести конкретный пример? –
@ Ronaldo: правильно, хотя, поскольку Joe группируется t1.person, это не имеет значения, так как если есть вторая попытка попробовать между первой и первой неудачной попыткой, то человек отвечает критериям. – ash