我有一个类似于以下表格的表:
---------
id, keyid
---------
1, 3
1, 5
1, 6
2, 1
2, 1
2, 3
4, 1
I want the output of the query to be
1,3
2,1
4,1
如果我使用 select distinct(id,keyid) from table,它会将 distinct 应用于 id 和 keyid 的组合,而不仅仅是单独的 id。
我有一个类似于以下表格的表:
---------
id, keyid
---------
1, 3
1, 5
1, 6
2, 1
2, 1
2, 3
4, 1
I want the output of the query to be
1,3
2,1
4,1
如果我使用 select distinct(id,keyid) from table,它会将 distinct 应用于 id 和 keyid 的组合,而不仅仅是单独的 id。
select id, min(keyid) from tbl group by id
WITH CTE AS (
SELECT Id, KeyId, ROW_NUMBER() OVER (PARTITION BY Id ORDER BY Id) AS RN
FROM tbl
)
SELECT Id, KeyId FROM CTE WHERE RN = 1
STATISTICS IO
和 STATISTICS TIME
进行了测试,它们在性能方面似乎是相同的,所以真正取决于您的确切需求。