select 多列 SQL 时如何使用 distinct
How to use distinct when you select multiple column in SQL
我使用了简单的内部连接语句并将结果输入到 CTE table。我想 select 与 CTE 不同 'ServiceId'。我有以下查询
SELECT DISTINCT(ServicesId), ServiceNo, ServiceDate, DealerCode FROM CTE_Temp
假设 CTE 中有重复的 ServiceId 条目,那么我只想 select 第一个条目并忽略其余条目。
您可以为此使用 ROW_NUMBER() OVER()
。只需替换 ORDER BY
中的列即可定义第一个。
;WITH AnotherCTE AS(
SELECT
ServicesId, ServiceNo, ServiceDate, DealerCode,
RN = ROW_NUMBER() OVER(PARTITION BY ServicesID ORDER BY ServiceDate DESC)
FROM CTE_Temp
)
SELECT
ServicesId, ServiceNo, ServiceDate, DealerCode
FROM AnotherCTE
WHERE RN = 1
我使用了简单的内部连接语句并将结果输入到 CTE table。我想 select 与 CTE 不同 'ServiceId'。我有以下查询
SELECT DISTINCT(ServicesId), ServiceNo, ServiceDate, DealerCode FROM CTE_Temp
假设 CTE 中有重复的 ServiceId 条目,那么我只想 select 第一个条目并忽略其余条目。
您可以为此使用 ROW_NUMBER() OVER()
。只需替换 ORDER BY
中的列即可定义第一个。
;WITH AnotherCTE AS(
SELECT
ServicesId, ServiceNo, ServiceDate, DealerCode,
RN = ROW_NUMBER() OVER(PARTITION BY ServicesID ORDER BY ServiceDate DESC)
FROM CTE_Temp
)
SELECT
ServicesId, ServiceNo, ServiceDate, DealerCode
FROM AnotherCTE
WHERE RN = 1