0

我有这两个表,代表电子邮件发送和打开事件:

                  TABLE1 (SENDS)
 ------------------------------------------------
| ReceiptId | JobId |  SK  |       LogDate       |
|-----------|-------|------|---------------------|
|  0000001  | 67789 | 4151 | 6/4/2018 3:21:48 AM |
|-----------|-------|------|---------------------|
|  0000002  | 67789 | 4151 | 6/4/2018 4:15:50 AM |
|-----------|-------|------|---------------------|
|  0000003  | 67789 | 4151 | 6/4/2018 9:42:04 AM |
|-----------|-------|------|---------------------|
|  0000004  | 67789 | 4151 | 6/4/2018 7:28:09 PM |
 ------------------------------------------------

            TABLE2 (OPENS)
 -------------------------------------
| JobId |  SK  |       LogDate        |
|-------|------|----------------------|
| 67789 | 4151 | 6/4/2018 7:31:42 AM  |
|-------|------|----------------------|
| 67789 | 4151 | 6/4/2018 11:32:52 AM |
|-------|------|----------------------|
| 67789 | 4151 | 6/4/2018 2:12:03 PM  |
|-------|------|----------------------|
| 67789 | 4151 | 6/4/2018 5:14:37 PM  |
 -------------------------------------

我需要一个 SQL 查询或“服务器端 Javascript 脚本”来获取从TABLE2、其中 ( TABLE1.JobId = TABLE2.JobId& TABLE1.SK = TABLE2.SK) 分组的打开次数TABLE1.ReceiptId,考虑到“打开”日期将始终高于“发送”日期和最后一封电子邮件sent 将是电子邮件收件箱中的第一个,因此将是用户打开的第一个。

因此,我们需要将每个“打开”事件与最后发送的未打开电子邮件匹配,或者如果没有任何未打开的电子邮件,则与最后发送的电子邮件匹配。'Sent-Opened' 逻辑在此模式中表示:

发送打开逻辑模式

所以上面两个表的结果表将是:

               RESULT TABLE
 -----------------------------------------
| ReceiptId | JobId |  SK  |  Opens Count |
|-----------|-------|------|--------------|
|  0000001  | 67789 | 4151 |      1       |
|-----------|-------|------|--------------|
|  0000002  | 67789 | 4151 |      1       |
|-----------|-------|------|--------------|
|  0000003  | 67789 | 4151 |      2       |
|-----------|-------|------|--------------|
|  0000004  | 67789 | 4151 |      0       |
 -----------------------------------------

编辑:Marketing Cloud 也允许使用 SSJS。SSJS 或 SQL 都可以成为我的解决方案。

非常感谢您提前。

4

0 回答 0