>데이터 베이스 >MySQL 튜토리얼 >MySQL에서 그룹화된 데이터의 행 번호를 생성하는 방법은 무엇입니까?

MySQL에서 그룹화된 데이터의 행 번호를 생성하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-11 12:42:03915검색

How to Generate Row Numbers for Grouped Data in MySQL?

MySQL에서 그룹화된 데이터에 대한 행 번호 생성

특정 열로 그룹화된 데이터에 순차적인 행 번호를 할당하는 것은 효율적인 데이터 조작을 위한 유용한 기술입니다. 그리고 프리젠테이션. 이 시나리오에서는 크루 ID 및 유형 열을 모두 기반으로 데이터 집합에 대한 행 번호를 생성하려고 합니다.

이를 달성하려면 다음 사용자 지정 쿼리를 활용하세요.

SELECT    id,
          crew_id,
          amount,
          type,
          ( 
             CASE type 
             WHEN @curType 
             THEN @curRow := @curRow + 1 
             ELSE @curRow := 1 AND @curType := type END
           ) + 1 AS rank
FROM      Table1 p,
          (SELECT @curRow := 0, @curType := '') r
ORDER BY  crew_id,type asc;

다음을 살펴보겠습니다. 쿼리를 단계별로 분류합니다:

  1. 하위 쿼리: 사용자 정의 쿼리는 (SELECT @curRow := 0, @curType := '') r에 의해 정의된 하위 쿼리. 이는 두 개의 사용자 정의 변수 @curRow 및 @curType을 초기화하여 각각 0과 빈 문자열로 설정합니다. 이러한 변수는 행 번호와 발견된 유형 값을 추적합니다.
  2. 외부 쿼리: SELECT id,rew_id,...로 표시되는 기본 쿼리는 Table1에서 필요한 데이터를 검색합니다. 테이블. 여기서 주요 초점은 순위 열의 계산입니다.
  3. 중첩 CASE 문: 순위 계산 내의 CASE 문은 현재 유형 값이 이전에 발생한 유형(@curType)과 일치하는지 확인합니다. . 일치하면 @curRow를 1씩 증가시키고 증가된 값을 순위에 할당합니다. 그러나 유형이 다른 경우 @curRow를 1로 재설정하고 @curType을 현재 유형 값으로 업데이트합니다. 이렇게 하면 크루 ID 및 유형으로 정의된 각 그룹 내에서 정확한 행 번호 지정이 보장됩니다.
  4. ORDER BY 절: 최종 결과는 크루 ID 및 유형을 기준으로 오름차순으로 정렬되며, 이는 올바른 행에 매우 중요합니다. 각 그룹 내에서 번호 할당.

이 포괄적인 쿼리를 따르면 여러 열로 정의된 데이터 그룹에 대한 행 번호를 효율적으로 생성할 수 있습니다. MySQL에서 데이터 조작 및 프레젠테이션 작업을 위한 다목적 솔루션을 제공합니다.

위 내용은 MySQL에서 그룹화된 데이터의 행 번호를 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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