집 >데이터 베이스 >MySQL 튜토리얼 >DENSE_RANK()를 사용하여 SQL에서 고유 값의 행 번호를 얻는 방법은 무엇입니까?
SQL에서 Row_Number를 사용하여 고유한 값을 가진 행 구별
SQL에서 DISTINCT 키워드는 데이터를 검색할 때 중복 행을 제거하는 데 중요한 역할을 합니다. 그러나 열 내 각 값의 고유한 발생을 식별해야 하는 경우에는 충분하지 않을 수 있습니다. 여기서 Row_Number가 중요하지만 DISTINCT와의 조합은 까다로울 수 있습니다.
문제의 쿼리는 id 열의 고유 값에 대한 행 번호를 표시하려고 시도합니다.
SELECT DISTINCT id, ROW_NUMBER() OVER (ORDER BY id) AS RowNum FROM table WHERE fid = 64;
그러나 , 이 쿼리는 각 고유 값에 대한 행 번호가 아닌 고유한 id 값을 생성합니다. 원하는 결과를 얻으려면 DISTINCT 대신 DENSE_RANK() 함수를 사용할 수 있습니다.
SELECT DISTINCT id, DENSE_RANK() OVER (ORDER BY id) AS RowNum FROM table WHERE fid = 64;
DENSE_RANK()는 중복 값에 간격을 할당하는 ROW_NUMBER()와 달리 순차적 행 번호를 고유 값에 할당합니다. DENSE_RANK()를 DISTINCT와 결합하면 각 고유 ID 값에 대한 행 번호를 검색하여 추가 분석 또는 처리에 필요한 정보를 제공할 수 있습니다.
위 내용은 DENSE_RANK()를 사용하여 SQL에서 고유 값의 행 번호를 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!