Oracle - несколько записей в диапазоне вопросов - PullRequest
0 голосов
/ 28 января 2019

В Oracle 12.2 у меня есть таблица, в которой перечислены события ... около 1,3 млн. Событий ...

  Event_Date  DATE,
  Person_ID Number,
  Person_Name VARCHAR2(100), 
  Event_Name_Tier1  VARCHAR2(100),
  ...

Мне нужен запрос, который говорит ...

Показатьвсе случаи, когда у ЛИЦА есть строка для Event_Name_Tier1 = 'ABC' и , у этого же человека есть другая строка (в той же таблице), где Event_Name_Tier1 = (Одно из примерно 15 значений, например, 'S2', 'T4',' G7 ',' Y9 ')) при условии, что обе записи были в пределах 90 дней друг от друга.

Как мне написать это?

1 Ответ

0 голосов
/ 28 января 2019

Учитывая характер вашего вопроса, я думаю что-то вроде:

select t.*
from t
where t.Event_Name_Tier1 = 'ABC' and
      exists (select 1
              from t t2
              where t2.person_id = t.person_id and
                    t2.Event_Name_Tier1 in ('S2', 'T4', 'G7', 'Y9', . . . ) and 
                    t2.event_date > t.event_date and
                    t2.event_date < t.event_date + interval '90' day
             );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...