我有这两个表,代表电子邮件发送和打开事件:
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 都可以成为我的解决方案。
非常感谢您提前。