我试图找出我数据库中的订阅者在一天中打开最多电子邮件的时间。
我有一个包含一堆订阅者 ID 的表,我还有另一个表,其中电子邮件打开记录映射到一个表,该表存储已发送的电子邮件,然后映射到特定的订阅者 ID。
所以我的基本愿望是得到一个表格输出,每一行都是一个特定的订阅者(订阅者 ID)以及他们打开最多电子邮件的时间。所以我需要先检查每个订阅者 ID,然后我想创建一个临时表每行是与他们在该小时内打开的电子邮件数量相关的不同小时。然后我需要选择 Max 以从该临时表中获取最大行,然后我需要将其放入我的输出表中,并为下一个订阅者重复。
我只关心一天中的时间。我不在乎月份、年份或时间。我只是想知道人们在一天中的什么时间最常打开电子邮件。
我一直在尝试使用 CTE 和 while 循环,但无济于事。任何帮助将不胜感激。
这是(最小化)结构:
表:订户
| 订阅者 ID | 姓氏 | 名字 |
| 9999999999 | 史密斯 | 约翰 |
表:已发送电子邮件
| message_id | 订阅者 ID |
| 9028340 | 9999999999 |
表:OpenEmails
| open_id | message_id | dtoped |
| 9923489 | 9028340 | '2011-11-22 15:53:02.157' |
我的目标是这样的输出表(最后一列是不必要的),每个subscriber_id 在列表中都是唯一的:
| 订阅者 ID | 开放时间 | 打开次数 |
| 999999999 | 10 | 32 |