我在ExactTarget中使用以下查询,并想知道为什么需要在GROUP BY语句中使用表名,而不是在WHERE语句中。
SELECT _Open.SubscriberKey, MIN(_Open.EventDate) AS EventDate3
FROM _Open
INNER JOIN _Job
ON _Open.JobID = _Job.JobID
WHERE EmailID = 10339639
GROUP BY _Open.SubscriberKey它工作得很好,只是想知道为什么/什么时候表名需要在列名前面,什么时候不需要。
发布于 2015-10-31 01:47:31
如果字段对于表是唯一的,那么你不需要表名。SubscriberKey只出现在一个表中,所以您可以这样说
SubscriberKey or _open.Subscriberkey (optional)但如果字段出现在1个以上的表中,则需要指定要使用的表。示例JobID出现在两个表中,因此您必须指定哪个表(jobs.JobID or _open.JobID)
此约定与where子句或group by查询无关。
https://stackoverflow.com/questions/33441924
复制相似问题