2011-11-07 47 views

Trả lời

13
select id, min(keyid) from tbl group by id 
+2

Đây là con đường để đi. Nói chung nó tốt hơn rất nhiều để ít nhất là hiểu cách suy nghĩ này thay vì áp dụng riêng biệt trên khắp nơi. – stefan

1

Nếu bạn muốn giá trị tối thiểu của KeyId cho mỗi Id, thì câu trả lời của người dùng194076 chắc chắn sẽ hoạt động.

Nếu bạn muốn giá trị xảy ra đầu tiên của KeyId cho mỗi Id, bạn có thể sử dụng:


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 

Tôi đã thử nghiệm cả hai sử dụng STATISTICS IOSTATISTICS TIME và chúng xuất hiện để được giống về hiệu suất, vì vậy thực sự phụ thuộc vào nhu cầu chính xác của bạn là gì.

Các vấn đề liên quan