집 >데이터 베이스 >MySQL 튜토리얼 >MySQL의 그룹 내에서 행 번호를 생성하는 방법은 무엇입니까?
문제:
MySQL 쿼리를 생성하여 각 그룹에 대한 행 번호를 생성합니다. Crew_id 및 type과 같은 두 가지 필드를 기반으로 한 레코드입니다. Crew_id 및 유형의 새로운 조합마다 행 번호를 재설정해야 합니다.
샘플 데이터:
id crew_id amount type 1 4 1000 AUB 2 4 1500 AUB 3 5 8000 CA 4 4 1000 CA 5 5 1000 AUB 6 6 3000 AUB 7 4 2000 CA 8 6 3500 AUB 9 4 5000 AUB 10 5 9000 CA 11 5 1000 CA
원함 출력:
id crew_id amount type row_number 1 4 1000 AUB 1 2 4 1500 AUB 2 9 4 5000 AUB 3 4 4 1000 CA 1 7 4 2000 CA 2 5 5 1000 AUB 1 3 5 8000 CA 1 10 5 9000 CA 2 11 5 1000 CA 3 6 6 3000 AUB 1 6 6 3000 AUB 2
해결책:
원하는 행 번호를 얻으려면 하위 쿼리와 CASE 문을 조합하여 활용할 수 있습니다.
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;
이 쿼리에서:
CASE 문은 외부 SELECT 쿼리는 유형 열을 @curType과 비교하여 현재 행이 동일한 그룹에 속하는지 확인합니다.
위 내용은 MySQL의 그룹 내에서 행 번호를 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!