Получить количество записей, меняющих статус - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь выяснить, как лучше всего подсчитать, сколько раз запись была отправлена ​​обратно пользователю (статус изменен с 3 или 4 на 1)

это то, что мои данные выглядяткак

ID   record_id  status_id
1    10909      2           
2    10909      3
3    10909      1
4    10909      3
5    10909      3
6    10909      4
7    10909      5

1 Ответ

2 голосов
/ 25 июня 2019

Таблицы SQL представляют неупорядоченные наборы. Строка «предыдущая» или «следующая» отсутствует, если только в столбце не указан порядок.

Похоже, в ваших данных такой колонки нет. Но если бы вы сделали, вы могли бы использовать lag():

select record_id, count(*)
from (select t.*,
             lag(status) over (partition by record_id order by <ordering column>) as prev_status
      from t
     ) t
where status = 1 and prev_status in (3, 4)
group by record_id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...