Menu
Coddy logo textTech

NTILE Function

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

NTILE(n)은 행들을 n개의 대략적으로 동일한 조각으로 나누어 번호를 매깁니다. 이는 성능 향상을 위해 자주 사용되는데, 한 번에 대량의 데이터를 보내는 것은 좋은 생각이 아닐 수 있어서 이 함수를 통해 더 작은 조각 단위로 보낼 수 있습니다.

예를 들어:

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

다음이 반환됩니다:

아이디레벨조각
141
241
352
462
573
673

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

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

이것은 어떤 그룹도 다른 그룹과 한 행 이상 차이 나지 않도록 보장하며, 추가 행은 낮은 번호의 그룹에 먼저 분배됩니다.

challenge icon

챌린지

쉬움

사용 가능한 테이블 및 열:

  • <strong>creatures</strong>: <strong>creature_name</strong>, <strong>preference</strong>, <strong>has_legs</strong> ('YES' 또는 'NO'를 포함)

이 챌린지에서는 중요한 상대를 찾고자 하는 생물들이 있습니다. 그들이 적합한 짝을 찾도록 도와야 합니다.

각 생물은 숫자로 표현된 선호도를 가지고 있습니다. 두 생물이 충분히 가까운 숫자를 가지면 좋은 짝이 될 수 있습니다.

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

치트 시트

NTILE(n) 함수는 행을 n개의 대략적으로 동일한 그룹으로 나누고, 이를 순차적으로 번호 매깁니다:

SELECT column1, column2, NTILE(3) OVER (ORDER BY column2) as group_number
FROM table_name

행 수가 n으로 정확히 나누어 떨어지지 않을 때, NTILE은 가능한 한 균등하게 행을 분배하며, 더 큰 그룹이 먼저 나타납니다. 예를 들어, 9개의 행과 NTILE(4)의 경우:

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

직접 해보기

quiz icon실력 점검

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

기초의 모든 레슨