Нет строк после определенного значения

Date time   Record ID   Action
9/9/2018 7:03   102 Support 
9/9/2018 7:03   102 hello
9/10/2018 7:03  103 Fetch it
9/10/2018 7:03  103 Ask it
9/10/2018 7:03  103 enable it 
9/9/2018 5:03   104 support 
9/9/2018 4:03   104 Fetch it
9/11/2018 7:03  105 Support 
9/11/2018 8:03  105 Support 
9/12/2018 5:03  106 end it
9/12/2018 6:03  106 Fetch it
9/12/2018 7:03  106 Support 

Чего я пытаюсь добиться, так это

Подсчет идентификатора записи, при котором последняя запись (дата и время в порядке возрастания) в столбце действия должна иметь поддержку только один раз, и после поддержки для каждого идентификатора не должно быть записи после поддержки

В приведенной выше таблице только идентификаторы записей 106 и 104 имеют поддержку только один раз в столбце действий, и нет записи после поддержки, упорядоченной по возрастанию по дате и времени. Поэтому мне нужно сосчитать (2)/ отобразить 104 и 106 ..

Может кто-нибудь помочь с этим!!..

1 ответ

Решение

Хммм. Один метод использует агрегацию и having:

select recordid
from t
group by recordid
having min(case when action = 'Support' then datetime end) = max(datetime);

По сути, это говорит о том, что первый раз, когда "Поддержка" видна, это самое позднее время для recordid,

Другие вопросы по тегам