실제로 쿼리에서 데이터를 명시 적으로 정렬하려고합니다. 내 선호도는 다음과 같습니다.
샘플 데이터
CREATE TABLE #EnrolmentData (StudentID int, EnrolmentID int)
INSERT INTO #EnrolmentData (StudentID, EnrolmentID)
VALUES
(1,1001)
,(1,1002)
,(2,1003)
,(3,1004)
,(3,1005)
,(3,1006)
실제 쿼리
SELECT
a.*
FROM
(
SELECT
StudentID
,EnrolmentID
,ROW_NUMBER() OVER(PARTITION BY StudentID ORDER BY StudentID, EnrolmentID) RowNum
FROM #EnrolmentData
) a
WHERE a.RowNum = 1
결과;
StudentID EnrolmentID RowNum
1 1001 1
2 1003 1
3 1004 1
내부 쿼리를 실행하여 자신이 수행중인 작업 (임시 테이블을 만든 후에)을 볼 수 있습니다. 작업중인 데이터 유형을 언급하지 않았으므로 올바른 필드로 주문했는지 확인하고 싶을 것입니다. 가장 높은 숫자의 EnrolmentID (필드가 int 인 경우)를 원한다면 하위 쿼리 내에서 그 다음에 DESC
을 붙이십시오. DESC
SELECT
a.*
FROM
(
SELECT
StudentID
,EnrolmentID
,ROW_NUMBER() OVER(PARTITION BY StudentID ORDER BY StudentID, EnrolmentID DESC) RowNum
FROM #EnrolmentData
) a
WHERE a.RowNum = 1
결과
StudentID EnrolmentID RowNum
1 1002 1
2 1003 1
3 1006 1
질문을 수정하고 샘플 데이터와 원하는 결과를 제공하십시오. –