Как посчитать отправленные сообщения после определенного дня в SQL (Oracle)? - PullRequest
0 голосов
/ 22 сентября 2019

Недавно я получил отчет о count количестве SMS-сообщений, отправленных на номер пользователя после дня отказа от подписки на услугу, Мне нужно проверить, верен этот отчет или нет, используяисходная таблица , ниже - мои таблицы, где table a - отчет, а table b - исходная таблица.

Мне нужно подсчитать количество сообщений, отправленных последату подписки от службы и классифицировать ее с помощью сообщений STATUS_CODE Delivered и OTB.Delivered.

, чтобы сделать ее понятной. Я положил ожидаемый результат для этих чисел в качестве примера (9537603785678,9537123485905), у каждого номера есть только одна дата отказа от подписки.

enter image description here

1 Ответ

2 голосов
/ 22 сентября 2019

Вам нужно будет использовать группу следующим образом:

select b.A_NUMBER, b.DEST_NUMBER, b.status_code, 
       count(distinct b.rowid) as msgs_count_after_unsub_date
From b join a
On (a.a_number = b.a_number
And a.dest_number = b.dest_number
And b.date >= a.unsubscription_date)
Group by b.A_NUMBER, b.DEST_NUMBER, b.status_code;

ИЛИ

select b.A_NUMBER, b.DEST_NUMBER, b.status_code, 
       count(1) as msgs_count_after_unsub_date
From b where b.date
>= (select min(a.unsubscription_date)
From a where
a.a_number = b.a_number
And a.dest_number = b.dest_number)
Group by b.A_NUMBER, b.DEST_NUMBER, b.status_code;

Приветствия !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...