对于每个电子邮件地址具有多行的数据库,我想按每个电子邮件地址进行分组,获取每个电子邮件地址的“最新”信息。
Email Col1 Col2 Col3 Col4 CustomerID
======= ==== ==== ==== ==== ==========
a@a.com a a a null 1
a@a.com null b b null 2
a@a.com null null c null 3
我想取最高的非空CustomerID
值。对于上述情况,我希望:
Email Col1 Col2 Col3 Col4
======= ==== ==== ==== ====
a@a.com a b c null
我可以做 a GROUP BY
,MAX
为每一列取 ,但它只是按字母顺序排列的最高值,并没有考虑CustomerID
在内。
SELECT EmailAddress, MAX(FirstName), MAX(LastName), MAX(Gender), MAX(Birthday), MAX(Country)
FROM CustomerInfo
GROUP BY EmailAddress
此外,这是在 Exact Target 中编程的,这意味着不支持某些 SQL 关键字,尤其是不支持变量、临时表和游标。
鉴于这些限制,是否有可能获得预期的结果?