为什么这样做?SQL,ExactTarget



我在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

它工作得很好,只是想知道为什么/什么时候在列名前面需要表名,什么时候不需要。

如果字段对表是唯一的,则不需要表名。SubscriberKey只存在于一个表中,因此您可以说

SubscriberKey or _open.Subscriberkey (optional)

但若字段存在于多个表中,则需要指定要使用的表。示例JobID存在于两个表中,因此您必须指定哪个表(jobs.JobID or _open.JobID)

此约定与where子句或按查询分组无关。

相关内容

  • 没有找到相关文章

最新更新