>데이터 베이스 >SQL >SQL에서 행 번호와 순위의 차이점

SQL에서 행 번호와 순위의 차이점

下次还敢
下次还敢원래의
2024-05-09 09:18:20601검색

ROW_NUMBER 및 RANK는 모두 SQL 결과 집합을 정렬하고 번호를 매기는 데 사용되는 함수입니다. ROW_NUMBER는 삽입 순서대로 행에 연속된 정수를 할당하는 반면, RANK는 동일한 값을 가진 행에 동일한 순위를 할당하고 중복을 피하기 위해 후속 행의 번호를 다시 매깁니다. ROW_NUMBER는 항상 연속된 정수를 반환하는 반면 RANK는 행 값에 따라 동일하거나 다른 순위를 반환할 수 있습니다. ROW_NUMBER는 삽입 순서에 따라 행에 번호를 매기거나 특정 기준에 따라 인접한 하위 집합에 번호를 매기는 데 사용되는 반면, RANK는 행의 순위를 지정하거나 동일한 값을 가진 행의 상대적 위치를 결정하는 데 사용됩니다.

SQL에서 행 번호와 순위의 차이점

SQL에서 ROW_NUMBER와 RANK의 차이점

ROW_NUMBER와 RANK는 모두 SQL에서 결과 집합을 정렬하고 번호를 매기는 데 사용되는 함수입니다. 두 가지 모두 유사한 목적을 수행하지만 구현 및 결과에는 몇 가지 주요 차이점이 있습니다.

구현 차이점

  • ROW_NUMBER: 행이 삽입되는 순서대로 번호가 매겨진 각 행에 고유한 정수를 할당합니다.
  • RANK: 동일한 값을 가진 행에 동일한 순위를 할당하지만 중복 순위가 없도록 후속 행의 번호를 다시 매깁니다.

결과의 차이

  • ROW_NUMBER: 행 값에 관계없이 항상 연속된 정수를 반환합니다. 동일한 순위 아래의 모든 행에는 동일한 ROW_NUMBER가 할당됩니다.
  • RANK: 행 값에 따라 동일하거나 다른 순위를 반환할 수 있습니다. 동일한 순위 아래의 모든 행에는 동일한 RANK가 할당됩니다.

사용 시나리오

  • ROW_NUMBER: 삽입 순서에 따라 행에 번호를 매겨야 하거나 특정 조건에 따라 연속된 하위 집합에 번호를 매겨야 할 때 유용합니다.
  • RANK: 행의 순위를 지정해야 하거나 동일한 값을 가진 행의 상대적 위치를 결정해야 할 때 유용합니다.

<code class="sql">-- ROW_NUMBER
SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNum, *
FROM table_name;

-- RANK
SELECT RANK() OVER (ORDER BY id) AS Rank, *
FROM table_name;</code>

Result

id RowNum Rank
1 1 1
2 2 1
3 3 3
4 4 2
5 5 4

위 내용은 SQL에서 행 번호와 순위의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.