【发布时间】:2011-06-28 15:30:42
【问题描述】:
假设我有以下查询。
SELECT ID, Email, ProductName, ProductModel FROM Products
如何修改它以使其不返回重复的电子邮件?
换句话说,当多行包含相同的电子邮件时,我希望结果只包含其中一行(最好是最后一行)。应该允许在其他列中重复。
DISTINCT 和 GROUP BY 之类的子句似乎适用于整行。所以我不确定如何解决这个问题。
【问题讨论】:
-
好的,您需要使用 PARTITION 还是使用两个 select 语句?
-
如果有 2 行具有相同的电子邮件但产品名称不同,应该显示什么? (最好是最后一个) 不清楚。最后按哪个排序?
-
@ypercube 如问题所述,最好是最后一个。但是,这对我来说并不重要。我只想要其中一个。
-
为什么不能使用:SELECT DISTINCT Email、ID、ProductName、ProductModel FROM Products?
标签: sql sql-server