실제는 maria DB 입니다만... mysql과 차이가 없는것 같아서 mysql로 분류해서 문의드립니다.
-- SAMPLE
SELECT empno, ename, job, sal, rnum
FROM (
SELECT a.*,
(CASE @vjob WHEN a.job THEN @rownum:=@rownum+1 ELSE @rownum:=1 END) rnum,
(@vjob:=a.job) vjob
FROM emp a, (SELECT @vjob:=0, @rownum:=0 FROM DUAL) b
ORDER BY a.job, a.sal
) c;
위와 같은 경우에는 단일테이블+그룹정렬을 위한 변수 선언해서 쓰는것 같은데요.
위를 조회 할 경우
ORACLE의 ROW_NUMBER() OVER (PARTITION BY FEALD1 ORDER BY FEALD2 ASC) AS RNUM의 그룹정렬함수처럼 정상적으로 나오는데...
FEALD1 , FEALD2, RNUM
A, 11, 1
A, 21, 2
B, 1, 1
B, 5, 2
B, 31, 3
================================================================
SELECT empno, ename, job, sal, rnum
FROM (
SELECT a.*,
(CASE @vjob WHEN a.job THEN @rownum:=@rownum+1 ELSE @rownum:=1 END) rnum,
(@vjob:=a.job) vjob
FROM emp a, job b, (SELECT @vjob:=0, @rownum:=0 FROM DUAL) b
WHERE A.column_name = B.column_name
ORDER BY a.job ASC , a.sal ASC
) c;
위와 같이 2개의 테이블을 조인한 상태에서의 그룹정렬 RUNM의 값은 제가 원하는 대로 나오지를 않습니다.
2개 테이블을 조인한 상태에서의 그룹정렬 방법 문의 드립니다.