SQL Server 2008을 사용하고 있습니다. 다음 필드가있는 Student 테이블이 있습니다. 1. StudentId, 2. StudentName, 3. 표시. "Position"이라는 열이 있어야하는 결과를 원합니다. "StudentId, StudentName, Marks, Student from Position ..."과 같은 것이므로 학생이 득점 한 점수에 따라 1 위, 2 위 또는 20 위를 평가할 수 있습니다. 학생들이 같은 점수를 가지고 있다면, 그들은 같은 지위를가집니다. 감사합니다. . 을 RhysSQL 서버 : 마크 기반 위치
3
A
답변
7
사용 RANK는 두 개 이상의 행이 순위에 대한 묶을 경우
, 각 묶여 행은 같은 순위를받습니다. 예를 들어, 두 명의 최고 영업 사원이 동일한 SalesYTD 값을 갖고 있으면 둘 다 하나의 순위가 매겨집니다. 그 다음으로 가장 높은 SalesYTD를 가진 영업 사원은 3 위에 랭크됩니다. 왜냐하면 2 개의 행이 더 높은 순위에 있기 때문입니다. 따라서 RANK 함수는 항상 연속 정수를 반환하지는 않습니다.
쿼리는 다음과 같이 수 :
SELECT
StudentId,
StudentName,
Marks,
RANK() OVER (ORDER BY Marks DESC) AS Position
FROM Student
1
당신은 위치를 계산하는 하위 쿼리를 사용할 수 있습니다. 순위는 단순히 높은 점수를 가진 학생의 수보다 하나 많습니다.
select
s.StudentId, s.StudentName, s.Marks,
Position = 1 + (select count(*) from Students m where m.Marks > s.Marks)
from
Students s
+0
간단한 답변을 주셔서 감사합니다. 그것은 나를 위해 그것을했다. 또한 위의 Mark Byers가 제안한 DENSE_RANK() 함수도 트릭을 수행함을 알았습니다. :-) – Rhys
관련 문제
- 1. SQL 서버 2005 (SET 기반)
- 2. SQL 서버 용 그리드 기반 편집
- 3. SQL 오류 26 - 오류 위치 서버. ASP.NET
- 4. django, 위치 기반 검색
- 5. 위치 기반 앱의 EXC_BAD_ACCESS
- 6. android의 위치 기반 서비스
- 7. 위치 기반 시간대 검색
- 8. 자바 기반 인쇄 위치
- 9. 지도 공유 기반 위치
- 10. 문자열의 위치 기반 바꾸기
- 11. 위치 기반 Twitter 검색
- 12. 위치 기반 응용 프로그램
- 13. 위치 기반 메시징
- 14. SQL 백업 위치
- 15. 마크 업 기반 GUI (파이썬 용)
- 16. 하드웨어 기반 프록시 서버 대 소프트웨어 기반 프록시 서버
- 17. 자바 기반 서버 호스팅
- 18. .NET 기반 IRC 서버
- 19. libical 기반 CalDAV 서버
- 20. 위치 기반 데이터 프리 페치
- 21. 위치 기반 검색을 수행하는 방법
- 22. 위치 기반 버튼 강조 표시
- 23. 위치 기반 앱을위한 기술 스택
- 24. 아이폰 SDK에 위치 기반 프로세스?
- 25. 위치 기반 데이터 잡기 알고리즘
- 26. 위치 기반 iPhone 앱 아키텍처
- 27. 위치 /지도 기반 웹 사이트 개발
- 28. SQL 서버 연결된 서버
- 29. Management Studio의 서버 기반 구문 강조 표시
- 30. Lucene을 사용하여 위치 기반 검색 성능 향상
다음은 순위 지정 기능에 대한 MSDN 설명서입니다. http://msdn.microsoft.com/en-us/library/ms189798.aspx – David
+1 완벽, ROW_NUMBER()을 (를) 생각하고 있었지만 RANK()가 중복 된 마크를 완벽하게 처리했습니다. –