如何在 SQL(Oracle) 中计算特定日期后发送的消息?
How to count sent messages after specific day in SQL(Oracle)?
我最近收到一份报告,关于在取消订阅服务后发送到用户号码的短信 count
条,我需要查看此报告是否正确通过使用原始 table,下面是我的 tables 其中 table a
是报告, table b
是原始 table.
我需要计算服务在取消订阅日期之后发送的消息数量,并使用STATUS_CODE
Delivered
和OTB.Delivered
封邮件。
为了便于理解,我以这些号码的预期结果为例(9537603785678,9537123485905)
,每个号码只有一个取消订阅日期。
您将需要按如下方式使用分组方式:
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;
干杯!!
我最近收到一份报告,关于在取消订阅服务后发送到用户号码的短信 count
条,我需要查看此报告是否正确通过使用原始 table,下面是我的 tables 其中 table a
是报告, table b
是原始 table.
我需要计算服务在取消订阅日期之后发送的消息数量,并使用STATUS_CODE
Delivered
和OTB.Delivered
封邮件。
为了便于理解,我以这些号码的预期结果为例(9537603785678,9537123485905)
,每个号码只有一个取消订阅日期。
您将需要按如下方式使用分组方式:
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;
干杯!!