MySQL에서 그룹별로 행 번호 지정
다음 테이블 구조를 고려하세요.
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 |
결과 집합을 생성하려면 Crew_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;
설명:
출력:
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 |
위 내용은 MySQL에서 그룹별로 행 번호를 매기는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!