对于每个电子邮件地址具有多行的数据库,我想按每个电子邮件地址进行分组,并为每个电子邮件地址输入“最新”信息。分组依据与基于另一列的聚合
Email Col1 Col2 Col3 Col4 CustomerID
======= ==== ==== ==== ==== ==========
[email protected] a a a null 1
[email protected] null b b null 2
[email protected] null null c null 3
我想借此非空值最高CustomerID
。对于以上情况,我会期望:
Email Col1 Col2 Col3 Col4
======= ==== ==== ==== ====
[email protected] a b c null
我可以做一个GROUP BY
,服用MAX
为每列,但它只是按字母顺序排列的最高值,并没有考虑CustomerID
考虑。
SELECT EmailAddress, MAX(FirstName), MAX(LastName), MAX(Gender), MAX(Birthday), MAX(Country)
FROM CustomerInfo
GROUP BY EmailAddress
另外,这正中的确切目标程序,这意味着some SQL keywords are unsupported,最显着的变量,临时表和游标不支持。
鉴于这些限制,是否有可能获得理想的结果?
我花了一段较长的时间试图比写的问题找出一个标题。如果您有更好的方式来总结问题,请随意更改标题。 –
如何在字符串类型值上使用'MAX'? – Rahul
@Rahul它只是按字母顺序获得最大价值。无论如何,这不是我想要的,因为我希望它只是具有最大CustomerID的非空值。 –