Menu
Coddy logo textTech

NTILE 함수

Coddy SQL 여정의 기초 섹션에 포함된 레슨. 72개 중 67번째.

NTILE(n)은 행을 n개의 거의 동일한 pieces로 나누어 행에 번호를 매깁니다. 성능 향상을 위해 자주 사용됩니다. 한 번에 많은 양의 데이터를 보내는 것은 좋지 않을 수 있으므로, 이 함수는 한 번에 더 작은 pieces를 보낼 수 있도록 합니다.

예:

idlevel
14
24
35
46
57
67
SELECT id, level, NTILE(3) OVER (ORDER BY level) as pieces
from table1

다음과 같은 결과를 반환합니다:

idlevelpieces
141
241
352
462
573
673

3개의 pieces를 얻었습니다. piece 1에는 level 4, piece 2에는 level 5와 level 6, piece 3에는 level 7이 있습니다.
행 수가 n으로 균등하게 나누어지지 않으면 NTILE은 행을 가능한 한 균등하게 분배하며, 더 큰 그룹이 먼저 나타납니다. 예를 들어, 9개의 행과 NTILE(4)이 있다면 분배는 다음과 같습니다:

  • 그룹 1: 3개 행
  • 그룹 2: 2개 행
  • 그룹 3: 2개 행
  • 그룹 4: 2개 행

이를 통해 어떤 그룹도 다른 그룹과 행 수가 1개를 초과하여 차이 나지 않도록 하며, 추가 행은 번호가 더 낮은 그룹에 먼저 분배됩니다.

challenge icon

챌린지

쉬움

사용 가능한 테이블과 열:

  • creatures: creature_name, preference, has_legs ('YES' 또는 'NO' 포함)

이 과제에서는 짝을 찾고 싶어 하는 생물들이 있습니다. 이들이 서로에게 맞는 짝을 찾도록 도와야 합니다.

각 생물에게는 숫자로 나타내는 선호도가 있습니다. 두 생물의 숫자가 충분히 가까우면 좋은 짝이 될 수 있습니다.

선호도 값을 기준으로 생물을 3개의 그룹으로 나누되, 다리가 있는 생물(has_legs = 'YES')만 고려하세요. creature_name, preference, 그리고 group_number(1, 2 또는 3)을 반환하세요. 결과는 preference를 기준으로 오름차순 정렬하세요.

직접 해보기

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨

직접 연습해 보세요: SQL 플레이그라운드