> 데이터 베이스 > MySQL 튜토리얼 > MySQL에서 Rank() over,density_rank() over 및 row_number() over를 사용하는 방법

MySQL에서 Rank() over,density_rank() over 및 row_number() over를 사용하는 방법

PHPz
풀어 주다: 2023-05-26 19:55:29
앞으로
1685명이 탐색했습니다.

MySQL에서 Rank() over,density_rank() over 및 row_number() over를 사용하는 방법

위 질문에 대해 이번에 사용한 함수를 사용하지 않을 경우, 즉, MySQL에서 이 글의 함수를 사용할 수 없는 경우 다음과 같은 구문 로직을 사용하여 대체할 수 있습니다. 그것.

1

2

SELECT t1.Score as Score, ( SELECT COUNT(DISTINCT t2.Score) FROM Scores t2 WHERE t2.Score >= t1.Score ) AS `Rank`

FROM Scores t1 ORDER BY t1.Score DESC

로그인 후 복사

rank() over (비즈니스 로직)

기능: 지정된 조건을 알아낸 후 순위를 매깁니다. 조건이 동일하면 순위가 동일하며 순위가 연속되지 않습니다.

이 기능은 학생 순위에 사용할 수 있습니다. 성적이 같은 두 학생이 동점을 이루고 다음 학생이 자리를 비우는 경우입니다. 즉, 1 1 3 4 5 5 7

1

SELECT id, name, score, rank() over(ORDER BY score DESC) AS 'rank' FROM student

로그인 후 복사

MySQL에서 Rank() over,density_rank() over 및 row_number() over를 사용하는 방법

dense_rank() over (비즈니스 로직)

기능: 지정된 조건을 찾아 순위를 매깁니다. 동일하며 순위는 불연속적입니다.

설명: Rank() 오버와 동일한 효과가 있습니다. 순위에 대한density_rank()가 촘촘하고 연속적이라는 점이 다릅니다. 이 기능을 사용하여 학생의 순위를 결정합니다. 동점인 경우에는 두 명의 학생이 같은 순위로 동점을 이루게 되며, 다음 순위에 따라 다음 순위의 학생이 결정됩니다. 즉, 1 1 2 3 4 5 5 6

1

SELECT id, name, score, dense_rank() over(ORDER BY score DESC) AS 'rank' FROM student

로그인 후 복사

MySQL에서 Rank() over,density_rank() over 및 row_number() over를 사용하는 방법

row_number() over (비즈니스 로직)

기능: 지정된 조건을 찾아 순위를 매기고, 조건이 같으면 순위가 달라지며, 순위는 불연속적입니다.

쿼리된 값이 동일하더라도 병렬 여부를 고려하지 않고 연속적으로 정렬하는 기능입니다. 즉, 1 2 3 4 5 6

1

SELECT id, name, score, row_number() over(ORDER BY score DESC) AS 'rank' FROM student

로그인 후 복사

MySQL에서 Rank() over,density_rank() over 및 row_number() over를 사용하는 방법

Postscript

함수의 비즈니스 로직은 복잡할 수 있으며 ORDER BY에 국한되지 않고 추가될 수도 있습니다.

1

2

3

### 分班级排名

SELECT id, name, score, class, row_number() over(PARTITION BY class ORDER BY score DESC) AS 'rank'

FROM student

로그인 후 복사

MySQL에서 Rank() over,density_rank() over 및 row_number() over를 사용하는 방법

위 내용은 MySQL에서 Rank() over,density_rank() over 및 row_number() over를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿