NTILE의 정렬 기준이 같은 행들에서 bucket 배정이 달라질 수 있다.
원본은 전체 SQL이 없어 동률 정렬이 원인으로 확정되지 않았다. 이 해법은 정렬 키가 유일하지 않은 경우의 조건부 방법이다.
윈도 함수의 ORDER BY에 유일한 tie-breaker를 추가하고 같은 입력 snapshot으로 비교한다.
확인 수준: 추가 조사 해법 · 해당 케이스 적용 결과 미확인
적용 조건: <...>와 예시 DB·테이블·경로·수치는 실제 확인값으로 바꾼다. 명령과 메뉴는 참고 문서를 바탕으로 보강한 예시이며 대상 시스템에서 실행하지 않았다. 버전·원인에 따른 분기와 남은 확인 사항은 아래에 명시한다.
SELECT <id>,
NTILE(4) OVER (ORDER BY <score> DESC, <unique_id> ASC) AS bucket
FROM <db>.<table>
ORDER BY <score> DESC, <unique_id> ASC;
동일 입력의 각 ID가 반복 실행에서 같은 bucket을 받는지 확인한다.