gpt4 book ai didi

sql - DISTINCT 仅适用于一列

转载 作者:行者123 更新时间:2023-12-01 16:36:38 25 4
gpt4 key购买 nike

假设我有以下查询。

SELECT ID, Email, ProductName, ProductModel FROM Products

如何修改它以使其不返回重复的电子邮件?

换句话说,当多行包含相同的电子邮件时,我希望结果仅包含其中一行(最好是最后一行)。其他列中应允许重复。

诸如 DISTINCTGROUP BY 之类的子句似乎适用于整行。所以我不知道如何解决这个问题。

最佳答案

如果您使用的是 SQL Server 2005 或更高版本,请使用以下命令:

SELECT *
FROM (
SELECT ID,
Email,
ProductName,
ProductModel,
ROW_NUMBER() OVER(PARTITION BY Email ORDER BY ID DESC) rn
FROM Products
) a
WHERE rn = 1

编辑:使用 where 子句的示例:

SELECT *
FROM (
SELECT ID,
Email,
ProductName,
ProductModel,
ROW_NUMBER() OVER(PARTITION BY Email ORDER BY ID DESC) rn
FROM Products
WHERE ProductModel = 2
AND ProductName LIKE 'CYBER%'

) a
WHERE rn = 1

关于sql - DISTINCT 仅适用于一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5021693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com