请有人帮忙吗?我已经在这个愚蠢的问题上投入了 HOURS 时间。这篇 stackoverview 帖子完全是我的问题,我尝试了两种建议的解决方案都无济于事。
这是我的细节。我从我的实际数据库中提取了 4 条记录,并且没有排除任何字段:
master_id date_sent type mailing response
00001 2015-02-28 00:00:00 PHONE NULL NULL
00001 2015-03-13 14:45:20 EMAIL ThankYou.html NULL
00001 2015-03-13 14:34:43 EMAIL ThankYou.html NULL
00001 2015-01-11 00:00:00 EMAIL KS_PREVIEW TRUE
00001 2015-03-23 21:42:03 EMAIL MailChimp Update #2 NULL
(对不起列的对齐方式。)
我想获取每个 master_id 的最新邮件和 date_sent。(我的摘录只有一个 master_id 以使这篇文章变得简单。)
所以我运行这个查询:
SELECT master_id,date_sent,mailing
FROM contact_copy
WHERE type="EMAIL"
并得到预期的结果:
master_id date_sent mailing
1 3/13/2015 14:45:20 ThankYou.html
1 3/13/2015 14:34:43 ThankYou.html
1 1/11/2015 0:00:00 KS_PREVIEW
1 3/23/2015 21:42:03 MailChimp Update #2
但是,当我添加这个简单的聚合来获取最近的日期时:
SELECT master_id,max(date_sent),mailing
FROM contact_copy
WHERE type="EMAIL"
group BY master_id
;
我得到一个意想不到的结果:
master_id max(date_sent) mailing
00001 2015-03-23 21:42:03 ThankYou.html
所以我的问题是:为什么它会返回错误的邮件?
这让我疯了!谢谢。
顺便说一句,我不是开发人员,如果我违反了一些询问的礼仪规则,我很抱歉。:)