我一直在绞尽脑汁想如何在没有 PHP 代码的情况下在一个查询中做到这一点。
简而言之,我有一个记录电子邮件活动的表。为了这个例子,这里是数据:
recipient_id activity date
1 delivered 2011-08-30
1 open 2011-08-31
2 delivered 2011-08-30
3 delivered 2011-08-24
3 open 2011-08-30
3 open 2011-08-31
目标:我想向用户显示一个数字,告诉用户有多少收件人在 24 小时内打开了他们的电子邮件。
EG“在 24 小时内打开电子邮件的用户:13 位读者”
在上述示例数据的情况下,该值将是“1”。(收件人 1 收到一封电子邮件并在第二天打开它。收件人 2 从未打开它,收件人 3 等了 5 天。)
谁能想到在单个查询中表达目标的方法?
提醒:为了计算,此人必须有一个“已交付”标签和至少一个“打开”标签。每个“打开”标签对每个收件人只计算一次。
** 编辑 ** 抱歉,我使用的是 MySQL